From 1aca6587d1dd46b791aca0d9adfb2f9b794bee8e Mon Sep 17 00:00:00 2001 From: Ozkan Sezer Date: Fri, 12 Feb 2010 14:10:48 +0000 Subject: [PATCH] added amstream.[idl|h] and vmr9.[idl|h] from wine sources. git-svn-id: svn+ssh://svn.code.sf.net/p/mingw-w64/code/trunk@1904 4407c894-4637-0410-b4f5-ada5f102cad1 --- mingw-w64-headers/direct-x/ChangeLog | 4 + mingw-w64-headers/direct-x/include/amstream.h | 1687 ++++++++++++ .../direct-x/include/amstream.idl | 318 +++ mingw-w64-headers/direct-x/include/vmr9.h | 2443 +++++++++++++++++ mingw-w64-headers/direct-x/include/vmr9.idl | 524 ++++ 5 files changed, 4976 insertions(+) create mode 100644 mingw-w64-headers/direct-x/include/amstream.h create mode 100644 mingw-w64-headers/direct-x/include/amstream.idl create mode 100644 mingw-w64-headers/direct-x/include/vmr9.h create mode 100644 mingw-w64-headers/direct-x/include/vmr9.idl diff --git a/mingw-w64-headers/direct-x/ChangeLog b/mingw-w64-headers/direct-x/ChangeLog index b2b507302..6c797994e 100644 --- a/mingw-w64-headers/direct-x/ChangeLog +++ b/mingw-w64-headers/direct-x/ChangeLog @@ -1,3 +1,7 @@ +2010-02-12 Ozkan Sezer + + added amstream.[idl|h] and vmr9.[idl|h] from wine sources. + 2010-02-12 Ozkan Sezer Merged with the dx headers from wine-1.1.38 including the missing diff --git a/mingw-w64-headers/direct-x/include/amstream.h b/mingw-w64-headers/direct-x/include/amstream.h new file mode 100644 index 000000000..6418aebc3 --- /dev/null +++ b/mingw-w64-headers/direct-x/include/amstream.h @@ -0,0 +1,1687 @@ +/*** Autogenerated by WIDL 1.1.38 from amstream.idl - Do not edit ***/ + +#include +#include + +#ifndef __WIDL_AMSTREAM_H +#define __WIDL_AMSTREAM_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Headers for imported files */ + +#include +#include +#include + +/* Forward declarations */ + +#ifndef __IDirectShowStream_FWD_DEFINED__ +#define __IDirectShowStream_FWD_DEFINED__ +typedef interface IDirectShowStream IDirectShowStream; +#endif + +#ifndef __IAMMultiMediaStream_FWD_DEFINED__ +#define __IAMMultiMediaStream_FWD_DEFINED__ +typedef interface IAMMultiMediaStream IAMMultiMediaStream; +#endif + +#ifndef __IAMMediaStream_FWD_DEFINED__ +#define __IAMMediaStream_FWD_DEFINED__ +typedef interface IAMMediaStream IAMMediaStream; +#endif + +#ifndef __IMediaStreamFilter_FWD_DEFINED__ +#define __IMediaStreamFilter_FWD_DEFINED__ +typedef interface IMediaStreamFilter IMediaStreamFilter; +#endif + +#ifndef __IDirectDrawMediaSampleAllocator_FWD_DEFINED__ +#define __IDirectDrawMediaSampleAllocator_FWD_DEFINED__ +typedef interface IDirectDrawMediaSampleAllocator IDirectDrawMediaSampleAllocator; +#endif + +#ifndef __IDirectDrawMediaSample_FWD_DEFINED__ +#define __IDirectDrawMediaSample_FWD_DEFINED__ +typedef interface IDirectDrawMediaSample IDirectDrawMediaSample; +#endif + +#ifndef __IAMMediaTypeStream_FWD_DEFINED__ +#define __IAMMediaTypeStream_FWD_DEFINED__ +typedef interface IAMMediaTypeStream IAMMediaTypeStream; +#endif + +#ifndef __IAMMediaTypeSample_FWD_DEFINED__ +#define __IAMMediaTypeSample_FWD_DEFINED__ +typedef interface IAMMediaTypeSample IAMMediaTypeSample; +#endif + +#ifndef __AMMultiMediaStream_FWD_DEFINED__ +#define __AMMultiMediaStream_FWD_DEFINED__ +typedef struct AMMultiMediaStream AMMultiMediaStream; +#endif /* defined __AMMultiMediaStream_FWD_DEFINED__ */ + + +#include +#include +#include +#include +#include +#if 0 +#ifndef __IDirectDraw_FWD_DEFINED__ +#define __IDirectDraw_FWD_DEFINED__ +typedef interface IDirectDraw IDirectDraw; +#endif + +#ifndef __IDirectDrawSurface_FWD_DEFINED__ +#define __IDirectDrawSurface_FWD_DEFINED__ +typedef interface IDirectDrawSurface IDirectDrawSurface; +#endif + +#endif +#ifndef __IAMMultiMediaStream_FWD_DEFINED__ +#define __IAMMultiMediaStream_FWD_DEFINED__ +typedef interface IAMMultiMediaStream IAMMultiMediaStream; +#endif + +#ifndef __IAMMediaStream_FWD_DEFINED__ +#define __IAMMediaStream_FWD_DEFINED__ +typedef interface IAMMediaStream IAMMediaStream; +#endif + +#ifndef __IMediaStreamFilter_FWD_DEFINED__ +#define __IMediaStreamFilter_FWD_DEFINED__ +typedef interface IMediaStreamFilter IMediaStreamFilter; +#endif + +#ifndef __IAMMediaTypeStream_FWD_DEFINED__ +#define __IAMMediaTypeStream_FWD_DEFINED__ +typedef interface IAMMediaTypeStream IAMMediaTypeStream; +#endif + +#ifndef __IAMMediaTypeSample_FWD_DEFINED__ +#define __IAMMediaTypeSample_FWD_DEFINED__ +typedef interface IAMMediaTypeSample IAMMediaTypeSample; +#endif + +enum { + AMMSF_NOGRAPHTHREAD = 0x1 +}; + +enum { + AMMSF_ADDDEFAULTRENDERER = 0x1, + AMMSF_CREATEPEER = 0x2, + AMMSF_STOPIFNOSAMPLES = 0x4, + AMMSF_NOSTALL = 0x8 +}; + +enum { + AMMSF_RENDERTYPEMASK = 0x3, + AMMSF_RENDERTOEXISTING = 0x0, + AMMSF_RENDERALLSTREAMS = 0x1, + AMMSF_NORENDER = 0x2, + AMMSF_NOCLOCK = 0x4, + AMMSF_RUN = 0x8 +}; + +typedef enum __WIDL_amstream_generated_name_00000000 { + Disabled = 0, + ReadData = 1, + RenderData = 2 +} OUTPUT_STATE; +/***************************************************************************** + * IDirectShowStream interface + */ +#ifndef __IDirectShowStream_INTERFACE_DEFINED__ +#define __IDirectShowStream_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDirectShowStream, 0x7db01c96, 0xc0c3, 0x11d0, 0x8f,0xf1, 0x00,0xc0,0x4f,0xd9,0x18,0x9d); +#if defined(__cplusplus) && !defined(CINTERFACE) +interface IDirectShowStream : public IDispatch +{ + virtual HRESULT STDMETHODCALLTYPE get_FileName( + BSTR *pVal) = 0; + + virtual HRESULT STDMETHODCALLTYPE put_FileName( + BSTR newVal) = 0; + + virtual HRESULT STDMETHODCALLTYPE get_Video( + OUTPUT_STATE *pVal) = 0; + + virtual HRESULT STDMETHODCALLTYPE put_Video( + OUTPUT_STATE newVal) = 0; + + virtual HRESULT STDMETHODCALLTYPE get_Audio( + OUTPUT_STATE *pVal) = 0; + + virtual HRESULT STDMETHODCALLTYPE put_Audio( + OUTPUT_STATE newVal) = 0; + +}; +#else +typedef struct IDirectShowStreamVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDirectShowStream* This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDirectShowStream* This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDirectShowStream* This); + + /*** IDispatch methods ***/ + HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)( + IDirectShowStream* This, + UINT *pctinfo); + + HRESULT (STDMETHODCALLTYPE *GetTypeInfo)( + IDirectShowStream* This, + UINT iTInfo, + LCID lcid, + ITypeInfo **ppTInfo); + + HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)( + IDirectShowStream* This, + REFIID riid, + LPOLESTR *rgszNames, + UINT cNames, + LCID lcid, + DISPID *rgDispId); + + HRESULT (STDMETHODCALLTYPE *Invoke)( + IDirectShowStream* This, + DISPID dispIdMember, + REFIID riid, + LCID lcid, + WORD wFlags, + DISPPARAMS *pDispParams, + VARIANT *pVarResult, + EXCEPINFO *pExcepInfo, + UINT *puArgErr); + + /*** IDirectShowStream methods ***/ + HRESULT (STDMETHODCALLTYPE *get_FileName)( + IDirectShowStream* This, + BSTR *pVal); + + HRESULT (STDMETHODCALLTYPE *put_FileName)( + IDirectShowStream* This, + BSTR newVal); + + HRESULT (STDMETHODCALLTYPE *get_Video)( + IDirectShowStream* This, + OUTPUT_STATE *pVal); + + HRESULT (STDMETHODCALLTYPE *put_Video)( + IDirectShowStream* This, + OUTPUT_STATE newVal); + + HRESULT (STDMETHODCALLTYPE *get_Audio)( + IDirectShowStream* This, + OUTPUT_STATE *pVal); + + HRESULT (STDMETHODCALLTYPE *put_Audio)( + IDirectShowStream* This, + OUTPUT_STATE newVal); + + END_INTERFACE +} IDirectShowStreamVtbl; +interface IDirectShowStream { + CONST_VTBL IDirectShowStreamVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +/*** IUnknown methods ***/ +#define IDirectShowStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDirectShowStream_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDirectShowStream_Release(This) (This)->lpVtbl->Release(This) +/*** IDispatch methods ***/ +#define IDirectShowStream_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo) +#define IDirectShowStream_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo) +#define IDirectShowStream_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) +#define IDirectShowStream_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) +/*** IDirectShowStream methods ***/ +#define IDirectShowStream_get_FileName(This,pVal) (This)->lpVtbl->get_FileName(This,pVal) +#define IDirectShowStream_put_FileName(This,newVal) (This)->lpVtbl->put_FileName(This,newVal) +#define IDirectShowStream_get_Video(This,pVal) (This)->lpVtbl->get_Video(This,pVal) +#define IDirectShowStream_put_Video(This,newVal) (This)->lpVtbl->put_Video(This,newVal) +#define IDirectShowStream_get_Audio(This,pVal) (This)->lpVtbl->get_Audio(This,pVal) +#define IDirectShowStream_put_Audio(This,newVal) (This)->lpVtbl->put_Audio(This,newVal) +#endif + +#endif + +HRESULT STDMETHODCALLTYPE IDirectShowStream_get_FileName_Proxy( + IDirectShowStream* This, + BSTR *pVal); +void __RPC_STUB IDirectShowStream_get_FileName_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IDirectShowStream_put_FileName_Proxy( + IDirectShowStream* This, + BSTR newVal); +void __RPC_STUB IDirectShowStream_put_FileName_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IDirectShowStream_get_Video_Proxy( + IDirectShowStream* This, + OUTPUT_STATE *pVal); +void __RPC_STUB IDirectShowStream_get_Video_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IDirectShowStream_put_Video_Proxy( + IDirectShowStream* This, + OUTPUT_STATE newVal); +void __RPC_STUB IDirectShowStream_put_Video_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IDirectShowStream_get_Audio_Proxy( + IDirectShowStream* This, + OUTPUT_STATE *pVal); +void __RPC_STUB IDirectShowStream_get_Audio_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IDirectShowStream_put_Audio_Proxy( + IDirectShowStream* This, + OUTPUT_STATE newVal); +void __RPC_STUB IDirectShowStream_put_Audio_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); + +#endif /* __IDirectShowStream_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IAMMultiMediaStream interface + */ +#ifndef __IAMMultiMediaStream_INTERFACE_DEFINED__ +#define __IAMMultiMediaStream_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IAMMultiMediaStream, 0xbebe595c, 0x9a6f, 0x11d0, 0x8f,0xde, 0x00,0xc0,0x4f,0xd9,0x18,0x9d); +#if defined(__cplusplus) && !defined(CINTERFACE) +interface IAMMultiMediaStream : public IMultiMediaStream +{ + virtual HRESULT STDMETHODCALLTYPE Initialize( + STREAM_TYPE StreamType, + DWORD dwFlags, + IGraphBuilder *pFilterGraph) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFilterGraph( + IGraphBuilder **ppGraphBuilder) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFilter( + IMediaStreamFilter **ppFilter) = 0; + + virtual HRESULT STDMETHODCALLTYPE AddMediaStream( + IUnknown *pStreamObject, + const MSPID *PurposeId, + DWORD dwFlags, + IMediaStream **ppNewStream) = 0; + + virtual HRESULT STDMETHODCALLTYPE OpenFile( + LPCWSTR pszFileName, + DWORD dwFlags) = 0; + + virtual HRESULT STDMETHODCALLTYPE OpenMoniker( + IBindCtx *pCtx, + IMoniker *pMoniker, + DWORD dwFlags) = 0; + + virtual HRESULT STDMETHODCALLTYPE Render( + DWORD dwFlags) = 0; + +}; +#else +typedef struct IAMMultiMediaStreamVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IAMMultiMediaStream* This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IAMMultiMediaStream* This); + + ULONG (STDMETHODCALLTYPE *Release)( + IAMMultiMediaStream* This); + + /*** IMultiMediaStream methods ***/ + HRESULT (STDMETHODCALLTYPE *GetInformation)( + IAMMultiMediaStream* This, + DWORD *pdwFlags, + STREAM_TYPE *pStreamType); + + HRESULT (STDMETHODCALLTYPE *GetMediaStream)( + IAMMultiMediaStream* This, + REFMSPID idPurpose, + IMediaStream **ppMediaStream); + + HRESULT (STDMETHODCALLTYPE *EnumMediaStreams)( + IAMMultiMediaStream* This, + LONG Index, + IMediaStream **ppMediaStream); + + HRESULT (STDMETHODCALLTYPE *GetState)( + IAMMultiMediaStream* This, + STREAM_STATE *pCurrentState); + + HRESULT (STDMETHODCALLTYPE *SetState)( + IAMMultiMediaStream* This, + STREAM_STATE NewState); + + HRESULT (STDMETHODCALLTYPE *GetTime)( + IAMMultiMediaStream* This, + STREAM_TIME *pCurrentTime); + + HRESULT (STDMETHODCALLTYPE *GetDuration)( + IAMMultiMediaStream* This, + STREAM_TIME *pDuration); + + HRESULT (STDMETHODCALLTYPE *Seek)( + IAMMultiMediaStream* This, + STREAM_TIME SeekTime); + + HRESULT (STDMETHODCALLTYPE *GetEndOfStreamEventHandle)( + IAMMultiMediaStream* This, + HANDLE *phEOS); + + /*** IAMMultiMediaStream methods ***/ + HRESULT (STDMETHODCALLTYPE *Initialize)( + IAMMultiMediaStream* This, + STREAM_TYPE StreamType, + DWORD dwFlags, + IGraphBuilder *pFilterGraph); + + HRESULT (STDMETHODCALLTYPE *GetFilterGraph)( + IAMMultiMediaStream* This, + IGraphBuilder **ppGraphBuilder); + + HRESULT (STDMETHODCALLTYPE *GetFilter)( + IAMMultiMediaStream* This, + IMediaStreamFilter **ppFilter); + + HRESULT (STDMETHODCALLTYPE *AddMediaStream)( + IAMMultiMediaStream* This, + IUnknown *pStreamObject, + const MSPID *PurposeId, + DWORD dwFlags, + IMediaStream **ppNewStream); + + HRESULT (STDMETHODCALLTYPE *OpenFile)( + IAMMultiMediaStream* This, + LPCWSTR pszFileName, + DWORD dwFlags); + + HRESULT (STDMETHODCALLTYPE *OpenMoniker)( + IAMMultiMediaStream* This, + IBindCtx *pCtx, + IMoniker *pMoniker, + DWORD dwFlags); + + HRESULT (STDMETHODCALLTYPE *Render)( + IAMMultiMediaStream* This, + DWORD dwFlags); + + END_INTERFACE +} IAMMultiMediaStreamVtbl; +interface IAMMultiMediaStream { + CONST_VTBL IAMMultiMediaStreamVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +/*** IUnknown methods ***/ +#define IAMMultiMediaStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IAMMultiMediaStream_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IAMMultiMediaStream_Release(This) (This)->lpVtbl->Release(This) +/*** IMultiMediaStream methods ***/ +#define IAMMultiMediaStream_GetInformation(This,pdwFlags,pStreamType) (This)->lpVtbl->GetInformation(This,pdwFlags,pStreamType) +#define IAMMultiMediaStream_GetMediaStream(This,idPurpose,ppMediaStream) (This)->lpVtbl->GetMediaStream(This,idPurpose,ppMediaStream) +#define IAMMultiMediaStream_EnumMediaStreams(This,Index,ppMediaStream) (This)->lpVtbl->EnumMediaStreams(This,Index,ppMediaStream) +#define IAMMultiMediaStream_GetState(This,pCurrentState) (This)->lpVtbl->GetState(This,pCurrentState) +#define IAMMultiMediaStream_SetState(This,NewState) (This)->lpVtbl->SetState(This,NewState) +#define IAMMultiMediaStream_GetTime(This,pCurrentTime) (This)->lpVtbl->GetTime(This,pCurrentTime) +#define IAMMultiMediaStream_GetDuration(This,pDuration) (This)->lpVtbl->GetDuration(This,pDuration) +#define IAMMultiMediaStream_Seek(This,SeekTime) (This)->lpVtbl->Seek(This,SeekTime) +#define IAMMultiMediaStream_GetEndOfStreamEventHandle(This,phEOS) (This)->lpVtbl->GetEndOfStreamEventHandle(This,phEOS) +/*** IAMMultiMediaStream methods ***/ +#define IAMMultiMediaStream_Initialize(This,StreamType,dwFlags,pFilterGraph) (This)->lpVtbl->Initialize(This,StreamType,dwFlags,pFilterGraph) +#define IAMMultiMediaStream_GetFilterGraph(This,ppGraphBuilder) (This)->lpVtbl->GetFilterGraph(This,ppGraphBuilder) +#define IAMMultiMediaStream_GetFilter(This,ppFilter) (This)->lpVtbl->GetFilter(This,ppFilter) +#define IAMMultiMediaStream_AddMediaStream(This,pStreamObject,PurposeId,dwFlags,ppNewStream) (This)->lpVtbl->AddMediaStream(This,pStreamObject,PurposeId,dwFlags,ppNewStream) +#define IAMMultiMediaStream_OpenFile(This,pszFileName,dwFlags) (This)->lpVtbl->OpenFile(This,pszFileName,dwFlags) +#define IAMMultiMediaStream_OpenMoniker(This,pCtx,pMoniker,dwFlags) (This)->lpVtbl->OpenMoniker(This,pCtx,pMoniker,dwFlags) +#define IAMMultiMediaStream_Render(This,dwFlags) (This)->lpVtbl->Render(This,dwFlags) +#endif + +#endif + +HRESULT STDMETHODCALLTYPE IAMMultiMediaStream_Initialize_Proxy( + IAMMultiMediaStream* This, + STREAM_TYPE StreamType, + DWORD dwFlags, + IGraphBuilder *pFilterGraph); +void __RPC_STUB IAMMultiMediaStream_Initialize_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IAMMultiMediaStream_GetFilterGraph_Proxy( + IAMMultiMediaStream* This, + IGraphBuilder **ppGraphBuilder); +void __RPC_STUB IAMMultiMediaStream_GetFilterGraph_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IAMMultiMediaStream_GetFilter_Proxy( + IAMMultiMediaStream* This, + IMediaStreamFilter **ppFilter); +void __RPC_STUB IAMMultiMediaStream_GetFilter_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IAMMultiMediaStream_AddMediaStream_Proxy( + IAMMultiMediaStream* This, + IUnknown *pStreamObject, + const MSPID *PurposeId, + DWORD dwFlags, + IMediaStream **ppNewStream); +void __RPC_STUB IAMMultiMediaStream_AddMediaStream_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IAMMultiMediaStream_OpenFile_Proxy( + IAMMultiMediaStream* This, + LPCWSTR pszFileName, + DWORD dwFlags); +void __RPC_STUB IAMMultiMediaStream_OpenFile_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IAMMultiMediaStream_OpenMoniker_Proxy( + IAMMultiMediaStream* This, + IBindCtx *pCtx, + IMoniker *pMoniker, + DWORD dwFlags); +void __RPC_STUB IAMMultiMediaStream_OpenMoniker_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IAMMultiMediaStream_Render_Proxy( + IAMMultiMediaStream* This, + DWORD dwFlags); +void __RPC_STUB IAMMultiMediaStream_Render_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); + +#endif /* __IAMMultiMediaStream_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IAMMediaStream interface + */ +#ifndef __IAMMediaStream_INTERFACE_DEFINED__ +#define __IAMMediaStream_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IAMMediaStream, 0xbebe595d, 0x9a6f, 0x11d0, 0x8f,0xde, 0x00,0xc0,0x4f,0xd9,0x18,0x9d); +#if defined(__cplusplus) && !defined(CINTERFACE) +interface IAMMediaStream : public IMediaStream +{ + virtual HRESULT STDMETHODCALLTYPE Initialize( + IUnknown *pSourceObject, + DWORD dwFlags, + REFMSPID PurposeId, + const STREAM_TYPE StreamType) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetState( + FILTER_STATE State) = 0; + + virtual HRESULT STDMETHODCALLTYPE JoinAMMultiMediaStream( + IAMMultiMediaStream *pAMMultiMediaStream) = 0; + + virtual HRESULT STDMETHODCALLTYPE JoinFilter( + IMediaStreamFilter *pMediaStreamFilter) = 0; + + virtual HRESULT STDMETHODCALLTYPE JoinFilterGraph( + IFilterGraph *pFilterGraph) = 0; + +}; +#else +typedef struct IAMMediaStreamVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IAMMediaStream* This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IAMMediaStream* This); + + ULONG (STDMETHODCALLTYPE *Release)( + IAMMediaStream* This); + + /*** IMediaStream methods ***/ + HRESULT (STDMETHODCALLTYPE *GetMultiMediaStream)( + IAMMediaStream* This, + IMultiMediaStream **ppMultiMediaStream); + + HRESULT (STDMETHODCALLTYPE *GetInformation)( + IAMMediaStream* This, + MSPID *pPurposeId, + STREAM_TYPE *pType); + + HRESULT (STDMETHODCALLTYPE *SetSameFormat)( + IAMMediaStream* This, + IMediaStream *pStreamThatHasDesiredFormat, + DWORD dwFlags); + + HRESULT (STDMETHODCALLTYPE *AllocateSample)( + IAMMediaStream* This, + DWORD dwFlags, + IStreamSample **ppSample); + + HRESULT (STDMETHODCALLTYPE *CreateSharedSample)( + IAMMediaStream* This, + IStreamSample *pExistingSample, + DWORD dwFlags, + IStreamSample **ppNewSample); + + HRESULT (STDMETHODCALLTYPE *SendEndOfStream)( + IAMMediaStream* This, + DWORD dwFlags); + + /*** IAMMediaStream methods ***/ + HRESULT (STDMETHODCALLTYPE *Initialize)( + IAMMediaStream* This, + IUnknown *pSourceObject, + DWORD dwFlags, + REFMSPID PurposeId, + const STREAM_TYPE StreamType); + + HRESULT (STDMETHODCALLTYPE *SetState)( + IAMMediaStream* This, + FILTER_STATE State); + + HRESULT (STDMETHODCALLTYPE *JoinAMMultiMediaStream)( + IAMMediaStream* This, + IAMMultiMediaStream *pAMMultiMediaStream); + + HRESULT (STDMETHODCALLTYPE *JoinFilter)( + IAMMediaStream* This, + IMediaStreamFilter *pMediaStreamFilter); + + HRESULT (STDMETHODCALLTYPE *JoinFilterGraph)( + IAMMediaStream* This, + IFilterGraph *pFilterGraph); + + END_INTERFACE +} IAMMediaStreamVtbl; +interface IAMMediaStream { + CONST_VTBL IAMMediaStreamVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +/*** IUnknown methods ***/ +#define IAMMediaStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IAMMediaStream_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IAMMediaStream_Release(This) (This)->lpVtbl->Release(This) +/*** IMediaStream methods ***/ +#define IAMMediaStream_GetMultiMediaStream(This,ppMultiMediaStream) (This)->lpVtbl->GetMultiMediaStream(This,ppMultiMediaStream) +#define IAMMediaStream_GetInformation(This,pPurposeId,pType) (This)->lpVtbl->GetInformation(This,pPurposeId,pType) +#define IAMMediaStream_SetSameFormat(This,pStreamThatHasDesiredFormat,dwFlags) (This)->lpVtbl->SetSameFormat(This,pStreamThatHasDesiredFormat,dwFlags) +#define IAMMediaStream_AllocateSample(This,dwFlags,ppSample) (This)->lpVtbl->AllocateSample(This,dwFlags,ppSample) +#define IAMMediaStream_CreateSharedSample(This,pExistingSample,dwFlags,ppNewSample) (This)->lpVtbl->CreateSharedSample(This,pExistingSample,dwFlags,ppNewSample) +#define IAMMediaStream_SendEndOfStream(This,dwFlags) (This)->lpVtbl->SendEndOfStream(This,dwFlags) +/*** IAMMediaStream methods ***/ +#define IAMMediaStream_Initialize(This,pSourceObject,dwFlags,PurposeId,StreamType) (This)->lpVtbl->Initialize(This,pSourceObject,dwFlags,PurposeId,StreamType) +#define IAMMediaStream_SetState(This,State) (This)->lpVtbl->SetState(This,State) +#define IAMMediaStream_JoinAMMultiMediaStream(This,pAMMultiMediaStream) (This)->lpVtbl->JoinAMMultiMediaStream(This,pAMMultiMediaStream) +#define IAMMediaStream_JoinFilter(This,pMediaStreamFilter) (This)->lpVtbl->JoinFilter(This,pMediaStreamFilter) +#define IAMMediaStream_JoinFilterGraph(This,pFilterGraph) (This)->lpVtbl->JoinFilterGraph(This,pFilterGraph) +#endif + +#endif + +HRESULT STDMETHODCALLTYPE IAMMediaStream_Initialize_Proxy( + IAMMediaStream* This, + IUnknown *pSourceObject, + DWORD dwFlags, + REFMSPID PurposeId, + const STREAM_TYPE StreamType); +void __RPC_STUB IAMMediaStream_Initialize_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IAMMediaStream_SetState_Proxy( + IAMMediaStream* This, + FILTER_STATE State); +void __RPC_STUB IAMMediaStream_SetState_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IAMMediaStream_JoinAMMultiMediaStream_Proxy( + IAMMediaStream* This, + IAMMultiMediaStream *pAMMultiMediaStream); +void __RPC_STUB IAMMediaStream_JoinAMMultiMediaStream_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IAMMediaStream_JoinFilter_Proxy( + IAMMediaStream* This, + IMediaStreamFilter *pMediaStreamFilter); +void __RPC_STUB IAMMediaStream_JoinFilter_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IAMMediaStream_JoinFilterGraph_Proxy( + IAMMediaStream* This, + IFilterGraph *pFilterGraph); +void __RPC_STUB IAMMediaStream_JoinFilterGraph_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); + +#endif /* __IAMMediaStream_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IMediaStreamFilter interface + */ +#ifndef __IMediaStreamFilter_INTERFACE_DEFINED__ +#define __IMediaStreamFilter_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IMediaStreamFilter, 0xbebe595e, 0x9a6f, 0x11d0, 0x8f,0xde, 0x00,0xc0,0x4f,0xd9,0x18,0x9d); +#if defined(__cplusplus) && !defined(CINTERFACE) +interface IMediaStreamFilter : public IBaseFilter +{ + virtual HRESULT STDMETHODCALLTYPE AddMediaStream( + IAMMediaStream *pAMMediaStream) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetMediaStream( + REFMSPID idPurpose, + IMediaStream **ppMediaStream) = 0; + + virtual HRESULT STDMETHODCALLTYPE EnumMediaStreams( + LONG Index, + IMediaStream **ppMediaStream) = 0; + + virtual HRESULT STDMETHODCALLTYPE SupportSeeking( + BOOL bRenderer) = 0; + + virtual HRESULT STDMETHODCALLTYPE ReferenceTimeToStreamTime( + REFERENCE_TIME *pTime) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetCurrentStreamTime( + REFERENCE_TIME *pCurrentStreamTime) = 0; + + virtual HRESULT STDMETHODCALLTYPE WaitUntil( + REFERENCE_TIME WaitStreamTime) = 0; + + virtual HRESULT STDMETHODCALLTYPE Flush( + BOOL bCancelEOS) = 0; + + virtual HRESULT STDMETHODCALLTYPE EndOfStream( + ) = 0; + +}; +#else +typedef struct IMediaStreamFilterVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IMediaStreamFilter* This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IMediaStreamFilter* This); + + ULONG (STDMETHODCALLTYPE *Release)( + IMediaStreamFilter* This); + + /*** IPersist methods ***/ + HRESULT (STDMETHODCALLTYPE *GetClassID)( + IMediaStreamFilter* This, + CLSID *pClassID); + + /*** IMediaFilter methods ***/ + HRESULT (STDMETHODCALLTYPE *Stop)( + IMediaStreamFilter* This); + + HRESULT (STDMETHODCALLTYPE *Pause)( + IMediaStreamFilter* This); + + HRESULT (STDMETHODCALLTYPE *Run)( + IMediaStreamFilter* This, + REFERENCE_TIME tStart); + + HRESULT (STDMETHODCALLTYPE *GetState)( + IMediaStreamFilter* This, + DWORD dwMilliSecsTimeout, + FILTER_STATE *State); + + HRESULT (STDMETHODCALLTYPE *SetSyncSource)( + IMediaStreamFilter* This, + IReferenceClock *pClock); + + HRESULT (STDMETHODCALLTYPE *GetSyncSource)( + IMediaStreamFilter* This, + IReferenceClock **pClock); + + /*** IBaseFilter methods ***/ + HRESULT (STDMETHODCALLTYPE *EnumPins)( + IMediaStreamFilter* This, + IEnumPins **ppEnum); + + HRESULT (STDMETHODCALLTYPE *FindPin)( + IMediaStreamFilter* This, + LPCWSTR Id, + IPin **ppPin); + + HRESULT (STDMETHODCALLTYPE *QueryFilterInfo)( + IMediaStreamFilter* This, + FILTER_INFO *pInfo); + + HRESULT (STDMETHODCALLTYPE *JoinFilterGraph)( + IMediaStreamFilter* This, + IFilterGraph *pGraph, + LPCWSTR pName); + + HRESULT (STDMETHODCALLTYPE *QueryVendorInfo)( + IMediaStreamFilter* This, + LPWSTR *pVendorInfo); + + /*** IMediaStreamFilter methods ***/ + HRESULT (STDMETHODCALLTYPE *AddMediaStream)( + IMediaStreamFilter* This, + IAMMediaStream *pAMMediaStream); + + HRESULT (STDMETHODCALLTYPE *GetMediaStream)( + IMediaStreamFilter* This, + REFMSPID idPurpose, + IMediaStream **ppMediaStream); + + HRESULT (STDMETHODCALLTYPE *EnumMediaStreams)( + IMediaStreamFilter* This, + LONG Index, + IMediaStream **ppMediaStream); + + HRESULT (STDMETHODCALLTYPE *SupportSeeking)( + IMediaStreamFilter* This, + BOOL bRenderer); + + HRESULT (STDMETHODCALLTYPE *ReferenceTimeToStreamTime)( + IMediaStreamFilter* This, + REFERENCE_TIME *pTime); + + HRESULT (STDMETHODCALLTYPE *GetCurrentStreamTime)( + IMediaStreamFilter* This, + REFERENCE_TIME *pCurrentStreamTime); + + HRESULT (STDMETHODCALLTYPE *WaitUntil)( + IMediaStreamFilter* This, + REFERENCE_TIME WaitStreamTime); + + HRESULT (STDMETHODCALLTYPE *Flush)( + IMediaStreamFilter* This, + BOOL bCancelEOS); + + HRESULT (STDMETHODCALLTYPE *EndOfStream)( + IMediaStreamFilter* This); + + END_INTERFACE +} IMediaStreamFilterVtbl; +interface IMediaStreamFilter { + CONST_VTBL IMediaStreamFilterVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +/*** IUnknown methods ***/ +#define IMediaStreamFilter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IMediaStreamFilter_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IMediaStreamFilter_Release(This) (This)->lpVtbl->Release(This) +/*** IPersist methods ***/ +#define IMediaStreamFilter_GetClassID(This,pClassID) (This)->lpVtbl->GetClassID(This,pClassID) +/*** IMediaFilter methods ***/ +#define IMediaStreamFilter_Stop(This) (This)->lpVtbl->Stop(This) +#define IMediaStreamFilter_Pause(This) (This)->lpVtbl->Pause(This) +#define IMediaStreamFilter_Run(This,tStart) (This)->lpVtbl->Run(This,tStart) +#define IMediaStreamFilter_GetState(This,dwMilliSecsTimeout,State) (This)->lpVtbl->GetState(This,dwMilliSecsTimeout,State) +#define IMediaStreamFilter_SetSyncSource(This,pClock) (This)->lpVtbl->SetSyncSource(This,pClock) +#define IMediaStreamFilter_GetSyncSource(This,pClock) (This)->lpVtbl->GetSyncSource(This,pClock) +/*** IBaseFilter methods ***/ +#define IMediaStreamFilter_EnumPins(This,ppEnum) (This)->lpVtbl->EnumPins(This,ppEnum) +#define IMediaStreamFilter_FindPin(This,Id,ppPin) (This)->lpVtbl->FindPin(This,Id,ppPin) +#define IMediaStreamFilter_QueryFilterInfo(This,pInfo) (This)->lpVtbl->QueryFilterInfo(This,pInfo) +#define IMediaStreamFilter_JoinFilterGraph(This,pGraph,pName) (This)->lpVtbl->JoinFilterGraph(This,pGraph,pName) +#define IMediaStreamFilter_QueryVendorInfo(This,pVendorInfo) (This)->lpVtbl->QueryVendorInfo(This,pVendorInfo) +/*** IMediaStreamFilter methods ***/ +#define IMediaStreamFilter_AddMediaStream(This,pAMMediaStream) (This)->lpVtbl->AddMediaStream(This,pAMMediaStream) +#define IMediaStreamFilter_GetMediaStream(This,idPurpose,ppMediaStream) (This)->lpVtbl->GetMediaStream(This,idPurpose,ppMediaStream) +#define IMediaStreamFilter_EnumMediaStreams(This,Index,ppMediaStream) (This)->lpVtbl->EnumMediaStreams(This,Index,ppMediaStream) +#define IMediaStreamFilter_SupportSeeking(This,bRenderer) (This)->lpVtbl->SupportSeeking(This,bRenderer) +#define IMediaStreamFilter_ReferenceTimeToStreamTime(This,pTime) (This)->lpVtbl->ReferenceTimeToStreamTime(This,pTime) +#define IMediaStreamFilter_GetCurrentStreamTime(This,pCurrentStreamTime) (This)->lpVtbl->GetCurrentStreamTime(This,pCurrentStreamTime) +#define IMediaStreamFilter_WaitUntil(This,WaitStreamTime) (This)->lpVtbl->WaitUntil(This,WaitStreamTime) +#define IMediaStreamFilter_Flush(This,bCancelEOS) (This)->lpVtbl->Flush(This,bCancelEOS) +#define IMediaStreamFilter_EndOfStream(This) (This)->lpVtbl->EndOfStream(This) +#endif + +#endif + +HRESULT STDMETHODCALLTYPE IMediaStreamFilter_AddMediaStream_Proxy( + IMediaStreamFilter* This, + IAMMediaStream *pAMMediaStream); +void __RPC_STUB IMediaStreamFilter_AddMediaStream_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IMediaStreamFilter_GetMediaStream_Proxy( + IMediaStreamFilter* This, + REFMSPID idPurpose, + IMediaStream **ppMediaStream); +void __RPC_STUB IMediaStreamFilter_GetMediaStream_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IMediaStreamFilter_EnumMediaStreams_Proxy( + IMediaStreamFilter* This, + LONG Index, + IMediaStream **ppMediaStream); +void __RPC_STUB IMediaStreamFilter_EnumMediaStreams_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IMediaStreamFilter_SupportSeeking_Proxy( + IMediaStreamFilter* This, + BOOL bRenderer); +void __RPC_STUB IMediaStreamFilter_SupportSeeking_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IMediaStreamFilter_ReferenceTimeToStreamTime_Proxy( + IMediaStreamFilter* This, + REFERENCE_TIME *pTime); +void __RPC_STUB IMediaStreamFilter_ReferenceTimeToStreamTime_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IMediaStreamFilter_GetCurrentStreamTime_Proxy( + IMediaStreamFilter* This, + REFERENCE_TIME *pCurrentStreamTime); +void __RPC_STUB IMediaStreamFilter_GetCurrentStreamTime_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IMediaStreamFilter_WaitUntil_Proxy( + IMediaStreamFilter* This, + REFERENCE_TIME WaitStreamTime); +void __RPC_STUB IMediaStreamFilter_WaitUntil_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IMediaStreamFilter_Flush_Proxy( + IMediaStreamFilter* This, + BOOL bCancelEOS); +void __RPC_STUB IMediaStreamFilter_Flush_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IMediaStreamFilter_EndOfStream_Proxy( + IMediaStreamFilter* This); +void __RPC_STUB IMediaStreamFilter_EndOfStream_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); + +#endif /* __IMediaStreamFilter_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDirectDrawMediaSampleAllocator interface + */ +#ifndef __IDirectDrawMediaSampleAllocator_INTERFACE_DEFINED__ +#define __IDirectDrawMediaSampleAllocator_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDirectDrawMediaSampleAllocator, 0xab6b4afc, 0xf6e4, 0x11d0, 0x90,0x0d, 0x00,0xc0,0x4f,0xd9,0x18,0x9d); +#if defined(__cplusplus) && !defined(CINTERFACE) +interface IDirectDrawMediaSampleAllocator : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE GetDirectDraw( + IDirectDraw **ppDirectDraw) = 0; + +}; +#else +typedef struct IDirectDrawMediaSampleAllocatorVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDirectDrawMediaSampleAllocator* This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDirectDrawMediaSampleAllocator* This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDirectDrawMediaSampleAllocator* This); + + /*** IDirectDrawMediaSampleAllocator methods ***/ + HRESULT (STDMETHODCALLTYPE *GetDirectDraw)( + IDirectDrawMediaSampleAllocator* This, + IDirectDraw **ppDirectDraw); + + END_INTERFACE +} IDirectDrawMediaSampleAllocatorVtbl; +interface IDirectDrawMediaSampleAllocator { + CONST_VTBL IDirectDrawMediaSampleAllocatorVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +/*** IUnknown methods ***/ +#define IDirectDrawMediaSampleAllocator_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDirectDrawMediaSampleAllocator_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDirectDrawMediaSampleAllocator_Release(This) (This)->lpVtbl->Release(This) +/*** IDirectDrawMediaSampleAllocator methods ***/ +#define IDirectDrawMediaSampleAllocator_GetDirectDraw(This,ppDirectDraw) (This)->lpVtbl->GetDirectDraw(This,ppDirectDraw) +#endif + +#endif + +HRESULT STDMETHODCALLTYPE IDirectDrawMediaSampleAllocator_GetDirectDraw_Proxy( + IDirectDrawMediaSampleAllocator* This, + IDirectDraw **ppDirectDraw); +void __RPC_STUB IDirectDrawMediaSampleAllocator_GetDirectDraw_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); + +#endif /* __IDirectDrawMediaSampleAllocator_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDirectDrawMediaSample interface + */ +#ifndef __IDirectDrawMediaSample_INTERFACE_DEFINED__ +#define __IDirectDrawMediaSample_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDirectDrawMediaSample, 0xab6b4afe, 0xf6e4, 0x11d0, 0x90,0x0d, 0x00,0xc0,0x4f,0xd9,0x18,0x9d); +#if defined(__cplusplus) && !defined(CINTERFACE) +interface IDirectDrawMediaSample : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE GetSurfaceAndReleaseLock( + IDirectDrawSurface **ppDirectDrawSurface, + RECT *pRect) = 0; + + virtual HRESULT STDMETHODCALLTYPE LockMediaSamplePointer( + ) = 0; + +}; +#else +typedef struct IDirectDrawMediaSampleVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDirectDrawMediaSample* This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDirectDrawMediaSample* This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDirectDrawMediaSample* This); + + /*** IDirectDrawMediaSample methods ***/ + HRESULT (STDMETHODCALLTYPE *GetSurfaceAndReleaseLock)( + IDirectDrawMediaSample* This, + IDirectDrawSurface **ppDirectDrawSurface, + RECT *pRect); + + HRESULT (STDMETHODCALLTYPE *LockMediaSamplePointer)( + IDirectDrawMediaSample* This); + + END_INTERFACE +} IDirectDrawMediaSampleVtbl; +interface IDirectDrawMediaSample { + CONST_VTBL IDirectDrawMediaSampleVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +/*** IUnknown methods ***/ +#define IDirectDrawMediaSample_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDirectDrawMediaSample_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDirectDrawMediaSample_Release(This) (This)->lpVtbl->Release(This) +/*** IDirectDrawMediaSample methods ***/ +#define IDirectDrawMediaSample_GetSurfaceAndReleaseLock(This,ppDirectDrawSurface,pRect) (This)->lpVtbl->GetSurfaceAndReleaseLock(This,ppDirectDrawSurface,pRect) +#define IDirectDrawMediaSample_LockMediaSamplePointer(This) (This)->lpVtbl->LockMediaSamplePointer(This) +#endif + +#endif + +HRESULT STDMETHODCALLTYPE IDirectDrawMediaSample_GetSurfaceAndReleaseLock_Proxy( + IDirectDrawMediaSample* This, + IDirectDrawSurface **ppDirectDrawSurface, + RECT *pRect); +void __RPC_STUB IDirectDrawMediaSample_GetSurfaceAndReleaseLock_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IDirectDrawMediaSample_LockMediaSamplePointer_Proxy( + IDirectDrawMediaSample* This); +void __RPC_STUB IDirectDrawMediaSample_LockMediaSamplePointer_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); + +#endif /* __IDirectDrawMediaSample_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IAMMediaTypeStream interface + */ +#ifndef __IAMMediaTypeStream_INTERFACE_DEFINED__ +#define __IAMMediaTypeStream_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IAMMediaTypeStream, 0xab6b4afa, 0xf6e4, 0x11d0, 0x90,0x0d, 0x00,0xc0,0x4f,0xd9,0x18,0x9d); +#if defined(__cplusplus) && !defined(CINTERFACE) +interface IAMMediaTypeStream : public IMediaStream +{ + virtual HRESULT STDMETHODCALLTYPE GetFormat( + AM_MEDIA_TYPE *pMediaType, + DWORD dwFlags) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetFormat( + AM_MEDIA_TYPE *pMediaType, + DWORD dwFlags) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateSample( + LONG lSampleSize, + BYTE *pbBuffer, + DWORD dwFlags, + IUnknown *pUnkOuter, + IAMMediaTypeSample **ppAMMediaTypeSample) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetStreamAllocatorRequirements( + ALLOCATOR_PROPERTIES *pProps) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetStreamAllocatorRequirements( + ALLOCATOR_PROPERTIES *pProps) = 0; + +}; +#else +typedef struct IAMMediaTypeStreamVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IAMMediaTypeStream* This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IAMMediaTypeStream* This); + + ULONG (STDMETHODCALLTYPE *Release)( + IAMMediaTypeStream* This); + + /*** IMediaStream methods ***/ + HRESULT (STDMETHODCALLTYPE *GetMultiMediaStream)( + IAMMediaTypeStream* This, + IMultiMediaStream **ppMultiMediaStream); + + HRESULT (STDMETHODCALLTYPE *GetInformation)( + IAMMediaTypeStream* This, + MSPID *pPurposeId, + STREAM_TYPE *pType); + + HRESULT (STDMETHODCALLTYPE *SetSameFormat)( + IAMMediaTypeStream* This, + IMediaStream *pStreamThatHasDesiredFormat, + DWORD dwFlags); + + HRESULT (STDMETHODCALLTYPE *AllocateSample)( + IAMMediaTypeStream* This, + DWORD dwFlags, + IStreamSample **ppSample); + + HRESULT (STDMETHODCALLTYPE *CreateSharedSample)( + IAMMediaTypeStream* This, + IStreamSample *pExistingSample, + DWORD dwFlags, + IStreamSample **ppNewSample); + + HRESULT (STDMETHODCALLTYPE *SendEndOfStream)( + IAMMediaTypeStream* This, + DWORD dwFlags); + + /*** IAMMediaTypeStream methods ***/ + HRESULT (STDMETHODCALLTYPE *GetFormat)( + IAMMediaTypeStream* This, + AM_MEDIA_TYPE *pMediaType, + DWORD dwFlags); + + HRESULT (STDMETHODCALLTYPE *SetFormat)( + IAMMediaTypeStream* This, + AM_MEDIA_TYPE *pMediaType, + DWORD dwFlags); + + HRESULT (STDMETHODCALLTYPE *CreateSample)( + IAMMediaTypeStream* This, + LONG lSampleSize, + BYTE *pbBuffer, + DWORD dwFlags, + IUnknown *pUnkOuter, + IAMMediaTypeSample **ppAMMediaTypeSample); + + HRESULT (STDMETHODCALLTYPE *GetStreamAllocatorRequirements)( + IAMMediaTypeStream* This, + ALLOCATOR_PROPERTIES *pProps); + + HRESULT (STDMETHODCALLTYPE *SetStreamAllocatorRequirements)( + IAMMediaTypeStream* This, + ALLOCATOR_PROPERTIES *pProps); + + END_INTERFACE +} IAMMediaTypeStreamVtbl; +interface IAMMediaTypeStream { + CONST_VTBL IAMMediaTypeStreamVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +/*** IUnknown methods ***/ +#define IAMMediaTypeStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IAMMediaTypeStream_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IAMMediaTypeStream_Release(This) (This)->lpVtbl->Release(This) +/*** IMediaStream methods ***/ +#define IAMMediaTypeStream_GetMultiMediaStream(This,ppMultiMediaStream) (This)->lpVtbl->GetMultiMediaStream(This,ppMultiMediaStream) +#define IAMMediaTypeStream_GetInformation(This,pPurposeId,pType) (This)->lpVtbl->GetInformation(This,pPurposeId,pType) +#define IAMMediaTypeStream_SetSameFormat(This,pStreamThatHasDesiredFormat,dwFlags) (This)->lpVtbl->SetSameFormat(This,pStreamThatHasDesiredFormat,dwFlags) +#define IAMMediaTypeStream_AllocateSample(This,dwFlags,ppSample) (This)->lpVtbl->AllocateSample(This,dwFlags,ppSample) +#define IAMMediaTypeStream_CreateSharedSample(This,pExistingSample,dwFlags,ppNewSample) (This)->lpVtbl->CreateSharedSample(This,pExistingSample,dwFlags,ppNewSample) +#define IAMMediaTypeStream_SendEndOfStream(This,dwFlags) (This)->lpVtbl->SendEndOfStream(This,dwFlags) +/*** IAMMediaTypeStream methods ***/ +#define IAMMediaTypeStream_GetFormat(This,pMediaType,dwFlags) (This)->lpVtbl->GetFormat(This,pMediaType,dwFlags) +#define IAMMediaTypeStream_SetFormat(This,pMediaType,dwFlags) (This)->lpVtbl->SetFormat(This,pMediaType,dwFlags) +#define IAMMediaTypeStream_CreateSample(This,lSampleSize,pbBuffer,dwFlags,pUnkOuter,ppAMMediaTypeSample) (This)->lpVtbl->CreateSample(This,lSampleSize,pbBuffer,dwFlags,pUnkOuter,ppAMMediaTypeSample) +#define IAMMediaTypeStream_GetStreamAllocatorRequirements(This,pProps) (This)->lpVtbl->GetStreamAllocatorRequirements(This,pProps) +#define IAMMediaTypeStream_SetStreamAllocatorRequirements(This,pProps) (This)->lpVtbl->SetStreamAllocatorRequirements(This,pProps) +#endif + +#endif + +HRESULT STDMETHODCALLTYPE IAMMediaTypeStream_GetFormat_Proxy( + IAMMediaTypeStream* This, + AM_MEDIA_TYPE *pMediaType, + DWORD dwFlags); +void __RPC_STUB IAMMediaTypeStream_GetFormat_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IAMMediaTypeStream_SetFormat_Proxy( + IAMMediaTypeStream* This, + AM_MEDIA_TYPE *pMediaType, + DWORD dwFlags); +void __RPC_STUB IAMMediaTypeStream_SetFormat_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IAMMediaTypeStream_CreateSample_Proxy( + IAMMediaTypeStream* This, + LONG lSampleSize, + BYTE *pbBuffer, + DWORD dwFlags, + IUnknown *pUnkOuter, + IAMMediaTypeSample **ppAMMediaTypeSample); +void __RPC_STUB IAMMediaTypeStream_CreateSample_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IAMMediaTypeStream_GetStreamAllocatorRequirements_Proxy( + IAMMediaTypeStream* This, + ALLOCATOR_PROPERTIES *pProps); +void __RPC_STUB IAMMediaTypeStream_GetStreamAllocatorRequirements_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IAMMediaTypeStream_SetStreamAllocatorRequirements_Proxy( + IAMMediaTypeStream* This, + ALLOCATOR_PROPERTIES *pProps); +void __RPC_STUB IAMMediaTypeStream_SetStreamAllocatorRequirements_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); + +#endif /* __IAMMediaTypeStream_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IAMMediaTypeSample interface + */ +#ifndef __IAMMediaTypeSample_INTERFACE_DEFINED__ +#define __IAMMediaTypeSample_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IAMMediaTypeSample, 0xab6b4afb, 0xf6e4, 0x11d0, 0x90,0x0d, 0x00,0xc0,0x4f,0xd9,0x18,0x9d); +#if defined(__cplusplus) && !defined(CINTERFACE) +interface IAMMediaTypeSample : public IStreamSample +{ + virtual HRESULT STDMETHODCALLTYPE SetPointer( + BYTE *pBuffer, + LONG lSize) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetPointer( + BYTE **ppBuffer) = 0; + + virtual LONG STDMETHODCALLTYPE GetSize( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetTime( + REFERENCE_TIME *pTimeStart, + REFERENCE_TIME *pTimeEnd) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetTime( + REFERENCE_TIME *pTimeStart, + REFERENCE_TIME *pTimeEnd) = 0; + + virtual HRESULT STDMETHODCALLTYPE IsSyncPoint( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetSyncPoint( + BOOL bIsSyncPoint) = 0; + + virtual HRESULT STDMETHODCALLTYPE IsPreroll( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetPreroll( + BOOL bIsPreroll) = 0; + + virtual LONG STDMETHODCALLTYPE GetActualDataLength( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetActualDataLength( + LONG Len) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetMediaType( + AM_MEDIA_TYPE **ppMediaType) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetMediaType( + AM_MEDIA_TYPE *pMediaType) = 0; + + virtual HRESULT STDMETHODCALLTYPE IsDiscontinuity( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetDiscontinuity( + BOOL bDiscontinuity) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetMediaTime( + LONGLONG *pTimeStart, + LONGLONG *pTimeEnd) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetMediaTime( + LONGLONG *pTimeStart, + LONGLONG *pTimeEnd) = 0; + +}; +#else +typedef struct IAMMediaTypeSampleVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IAMMediaTypeSample* This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IAMMediaTypeSample* This); + + ULONG (STDMETHODCALLTYPE *Release)( + IAMMediaTypeSample* This); + + /*** IStreamSample methods ***/ + HRESULT (STDMETHODCALLTYPE *GetMediaStream)( + IAMMediaTypeSample* This, + IMediaStream **ppMediaStream); + + HRESULT (STDMETHODCALLTYPE *GetSampleTimes)( + IAMMediaTypeSample* This, + STREAM_TIME *pStartTime, + STREAM_TIME *pEndTime, + STREAM_TIME *pCurrentTime); + + HRESULT (STDMETHODCALLTYPE *SetSampleTimes)( + IAMMediaTypeSample* This, + const STREAM_TIME *pStartTime, + const STREAM_TIME *pEndTime); + + HRESULT (STDMETHODCALLTYPE *Update)( + IAMMediaTypeSample* This, + DWORD dwFlags, + HANDLE hEvent, + PAPCFUNC pfnAPC, + DWORD dwAPCData); + + HRESULT (STDMETHODCALLTYPE *CompletionStatus)( + IAMMediaTypeSample* This, + DWORD dwFlags, + DWORD dwMilliseconds); + + /*** IAMMediaTypeSample methods ***/ + HRESULT (STDMETHODCALLTYPE *SetPointer)( + IAMMediaTypeSample* This, + BYTE *pBuffer, + LONG lSize); + + HRESULT (STDMETHODCALLTYPE *GetPointer)( + IAMMediaTypeSample* This, + BYTE **ppBuffer); + + LONG (STDMETHODCALLTYPE *GetSize)( + IAMMediaTypeSample* This); + + HRESULT (STDMETHODCALLTYPE *GetTime)( + IAMMediaTypeSample* This, + REFERENCE_TIME *pTimeStart, + REFERENCE_TIME *pTimeEnd); + + HRESULT (STDMETHODCALLTYPE *SetTime)( + IAMMediaTypeSample* This, + REFERENCE_TIME *pTimeStart, + REFERENCE_TIME *pTimeEnd); + + HRESULT (STDMETHODCALLTYPE *IsSyncPoint)( + IAMMediaTypeSample* This); + + HRESULT (STDMETHODCALLTYPE *SetSyncPoint)( + IAMMediaTypeSample* This, + BOOL bIsSyncPoint); + + HRESULT (STDMETHODCALLTYPE *IsPreroll)( + IAMMediaTypeSample* This); + + HRESULT (STDMETHODCALLTYPE *SetPreroll)( + IAMMediaTypeSample* This, + BOOL bIsPreroll); + + LONG (STDMETHODCALLTYPE *GetActualDataLength)( + IAMMediaTypeSample* This); + + HRESULT (STDMETHODCALLTYPE *SetActualDataLength)( + IAMMediaTypeSample* This, + LONG Len); + + HRESULT (STDMETHODCALLTYPE *GetMediaType)( + IAMMediaTypeSample* This, + AM_MEDIA_TYPE **ppMediaType); + + HRESULT (STDMETHODCALLTYPE *SetMediaType)( + IAMMediaTypeSample* This, + AM_MEDIA_TYPE *pMediaType); + + HRESULT (STDMETHODCALLTYPE *IsDiscontinuity)( + IAMMediaTypeSample* This); + + HRESULT (STDMETHODCALLTYPE *SetDiscontinuity)( + IAMMediaTypeSample* This, + BOOL bDiscontinuity); + + HRESULT (STDMETHODCALLTYPE *GetMediaTime)( + IAMMediaTypeSample* This, + LONGLONG *pTimeStart, + LONGLONG *pTimeEnd); + + HRESULT (STDMETHODCALLTYPE *SetMediaTime)( + IAMMediaTypeSample* This, + LONGLONG *pTimeStart, + LONGLONG *pTimeEnd); + + END_INTERFACE +} IAMMediaTypeSampleVtbl; +interface IAMMediaTypeSample { + CONST_VTBL IAMMediaTypeSampleVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +/*** IUnknown methods ***/ +#define IAMMediaTypeSample_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IAMMediaTypeSample_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IAMMediaTypeSample_Release(This) (This)->lpVtbl->Release(This) +/*** IStreamSample methods ***/ +#define IAMMediaTypeSample_GetMediaStream(This,ppMediaStream) (This)->lpVtbl->GetMediaStream(This,ppMediaStream) +#define IAMMediaTypeSample_GetSampleTimes(This,pStartTime,pEndTime,pCurrentTime) (This)->lpVtbl->GetSampleTimes(This,pStartTime,pEndTime,pCurrentTime) +#define IAMMediaTypeSample_SetSampleTimes(This,pStartTime,pEndTime) (This)->lpVtbl->SetSampleTimes(This,pStartTime,pEndTime) +#define IAMMediaTypeSample_Update(This,dwFlags,hEvent,pfnAPC,dwAPCData) (This)->lpVtbl->Update(This,dwFlags,hEvent,pfnAPC,dwAPCData) +#define IAMMediaTypeSample_CompletionStatus(This,dwFlags,dwMilliseconds) (This)->lpVtbl->CompletionStatus(This,dwFlags,dwMilliseconds) +/*** IAMMediaTypeSample methods ***/ +#define IAMMediaTypeSample_SetPointer(This,pBuffer,lSize) (This)->lpVtbl->SetPointer(This,pBuffer,lSize) +#define IAMMediaTypeSample_GetPointer(This,ppBuffer) (This)->lpVtbl->GetPointer(This,ppBuffer) +#define IAMMediaTypeSample_GetSize(This) (This)->lpVtbl->GetSize(This) +#define IAMMediaTypeSample_GetTime(This,pTimeStart,pTimeEnd) (This)->lpVtbl->GetTime(This,pTimeStart,pTimeEnd) +#define IAMMediaTypeSample_SetTime(This,pTimeStart,pTimeEnd) (This)->lpVtbl->SetTime(This,pTimeStart,pTimeEnd) +#define IAMMediaTypeSample_IsSyncPoint(This) (This)->lpVtbl->IsSyncPoint(This) +#define IAMMediaTypeSample_SetSyncPoint(This,bIsSyncPoint) (This)->lpVtbl->SetSyncPoint(This,bIsSyncPoint) +#define IAMMediaTypeSample_IsPreroll(This) (This)->lpVtbl->IsPreroll(This) +#define IAMMediaTypeSample_SetPreroll(This,bIsPreroll) (This)->lpVtbl->SetPreroll(This,bIsPreroll) +#define IAMMediaTypeSample_GetActualDataLength(This) (This)->lpVtbl->GetActualDataLength(This) +#define IAMMediaTypeSample_SetActualDataLength(This,Len) (This)->lpVtbl->SetActualDataLength(This,Len) +#define IAMMediaTypeSample_GetMediaType(This,ppMediaType) (This)->lpVtbl->GetMediaType(This,ppMediaType) +#define IAMMediaTypeSample_SetMediaType(This,pMediaType) (This)->lpVtbl->SetMediaType(This,pMediaType) +#define IAMMediaTypeSample_IsDiscontinuity(This) (This)->lpVtbl->IsDiscontinuity(This) +#define IAMMediaTypeSample_SetDiscontinuity(This,bDiscontinuity) (This)->lpVtbl->SetDiscontinuity(This,bDiscontinuity) +#define IAMMediaTypeSample_GetMediaTime(This,pTimeStart,pTimeEnd) (This)->lpVtbl->GetMediaTime(This,pTimeStart,pTimeEnd) +#define IAMMediaTypeSample_SetMediaTime(This,pTimeStart,pTimeEnd) (This)->lpVtbl->SetMediaTime(This,pTimeStart,pTimeEnd) +#endif + +#endif + +HRESULT STDMETHODCALLTYPE IAMMediaTypeSample_SetPointer_Proxy( + IAMMediaTypeSample* This, + BYTE *pBuffer, + LONG lSize); +void __RPC_STUB IAMMediaTypeSample_SetPointer_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IAMMediaTypeSample_GetPointer_Proxy( + IAMMediaTypeSample* This, + BYTE **ppBuffer); +void __RPC_STUB IAMMediaTypeSample_GetPointer_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +LONG STDMETHODCALLTYPE IAMMediaTypeSample_GetSize_Proxy( + IAMMediaTypeSample* This); +void __RPC_STUB IAMMediaTypeSample_GetSize_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IAMMediaTypeSample_GetTime_Proxy( + IAMMediaTypeSample* This, + REFERENCE_TIME *pTimeStart, + REFERENCE_TIME *pTimeEnd); +void __RPC_STUB IAMMediaTypeSample_GetTime_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IAMMediaTypeSample_SetTime_Proxy( + IAMMediaTypeSample* This, + REFERENCE_TIME *pTimeStart, + REFERENCE_TIME *pTimeEnd); +void __RPC_STUB IAMMediaTypeSample_SetTime_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IAMMediaTypeSample_IsSyncPoint_Proxy( + IAMMediaTypeSample* This); +void __RPC_STUB IAMMediaTypeSample_IsSyncPoint_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IAMMediaTypeSample_SetSyncPoint_Proxy( + IAMMediaTypeSample* This, + BOOL bIsSyncPoint); +void __RPC_STUB IAMMediaTypeSample_SetSyncPoint_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IAMMediaTypeSample_IsPreroll_Proxy( + IAMMediaTypeSample* This); +void __RPC_STUB IAMMediaTypeSample_IsPreroll_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IAMMediaTypeSample_SetPreroll_Proxy( + IAMMediaTypeSample* This, + BOOL bIsPreroll); +void __RPC_STUB IAMMediaTypeSample_SetPreroll_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +LONG STDMETHODCALLTYPE IAMMediaTypeSample_GetActualDataLength_Proxy( + IAMMediaTypeSample* This); +void __RPC_STUB IAMMediaTypeSample_GetActualDataLength_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IAMMediaTypeSample_SetActualDataLength_Proxy( + IAMMediaTypeSample* This, + LONG Len); +void __RPC_STUB IAMMediaTypeSample_SetActualDataLength_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IAMMediaTypeSample_GetMediaType_Proxy( + IAMMediaTypeSample* This, + AM_MEDIA_TYPE **ppMediaType); +void __RPC_STUB IAMMediaTypeSample_GetMediaType_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IAMMediaTypeSample_SetMediaType_Proxy( + IAMMediaTypeSample* This, + AM_MEDIA_TYPE *pMediaType); +void __RPC_STUB IAMMediaTypeSample_SetMediaType_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IAMMediaTypeSample_IsDiscontinuity_Proxy( + IAMMediaTypeSample* This); +void __RPC_STUB IAMMediaTypeSample_IsDiscontinuity_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IAMMediaTypeSample_SetDiscontinuity_Proxy( + IAMMediaTypeSample* This, + BOOL bDiscontinuity); +void __RPC_STUB IAMMediaTypeSample_SetDiscontinuity_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IAMMediaTypeSample_GetMediaTime_Proxy( + IAMMediaTypeSample* This, + LONGLONG *pTimeStart, + LONGLONG *pTimeEnd); +void __RPC_STUB IAMMediaTypeSample_GetMediaTime_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IAMMediaTypeSample_SetMediaTime_Proxy( + IAMMediaTypeSample* This, + LONGLONG *pTimeStart, + LONGLONG *pTimeEnd); +void __RPC_STUB IAMMediaTypeSample_SetMediaTime_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); + +#endif /* __IAMMediaTypeSample_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * AMMultiMediaStream coclass + */ + +DEFINE_GUID(CLSID_AMMultiMediaStream, 0x49c47ce5, 0x9ba4, 0x11d0, 0x82,0x12, 0x00,0xc0,0x4f,0xc3,0x2c,0x45); + +DEFINE_GUID(CLSID_AMDirectDrawStream, 0x49c47ce4, 0x9ba4, 0x11d0, 0x82, 0x12, 0x00, 0xc0, 0x4f, 0xc3, 0x2c, 0x45); +DEFINE_GUID(CLSID_AMAudioStream, 0x8496e040, 0xaf4c, 0x11d0, 0x82, 0x12, 0x00, 0xc0, 0x4f, 0xc3, 0x2c, 0x45); +DEFINE_GUID(CLSID_AMAudioData, 0xf2468580, 0xaf8a, 0x11d0, 0x82, 0x12, 0x00, 0xc0, 0x4f, 0xc3, 0x2c, 0x45); +DEFINE_GUID(CLSID_AMMediaTypeStream, 0xcf0f2f7c, 0xf7bf, 0x11d0, 0x90, 0x0d, 0x00, 0xc0, 0x4f, 0xd9, 0x18, 0x9d); +DEFINE_GUID(CLSID_MediaStreamFilter, 0x49c47ce0, 0x9ba4, 0x11d0, 0x82, 0x12, 0x00, 0xc0, 0x4f, 0xc3, 0x2c, 0x45); +/* Begin additional prototypes for all interfaces */ + +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_AMSTREAM_H */ diff --git a/mingw-w64-headers/direct-x/include/amstream.idl b/mingw-w64-headers/direct-x/include/amstream.idl new file mode 100644 index 000000000..2f32d4400 --- /dev/null +++ b/mingw-w64-headers/direct-x/include/amstream.idl @@ -0,0 +1,318 @@ +/* + * Copyright 2004 Christian Costa + * + * 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 + */ + +import "unknwn.idl"; +import "mmstream.idl"; +import "strmif.idl"; + +cpp_quote("#include ") +cpp_quote("#include ") +cpp_quote("#include ") +cpp_quote("#include ") +cpp_quote("#include ") + +cpp_quote("#if 0") +interface IDirectDraw; +interface IDirectDrawSurface; +cpp_quote("#endif") + +interface IAMMultiMediaStream; +interface IAMMediaStream; +interface IMediaStreamFilter; +interface IAMMediaTypeStream; +interface IAMMediaTypeSample; + +enum { + AMMSF_NOGRAPHTHREAD = 0x00000001 +}; + +enum { + AMMSF_ADDDEFAULTRENDERER = 0x00000001, + AMMSF_CREATEPEER = 0x00000002, + AMMSF_STOPIFNOSAMPLES = 0x00000004, + AMMSF_NOSTALL = 0x00000008 +}; + +enum { + AMMSF_RENDERTYPEMASK = 0x00000003, + AMMSF_RENDERTOEXISTING = 0x00000000, + AMMSF_RENDERALLSTREAMS = 0x00000001, + AMMSF_NORENDER = 0x00000002, + AMMSF_NOCLOCK = 0x00000004, + AMMSF_RUN = 0x00000008 +}; + + +typedef [v1_enum] enum { + Disabled = 0, + ReadData = 1, + RenderData = 2 +} OUTPUT_STATE; + +[ +object, +uuid(7DB01C96-C0C3-11d0-8FF1-00C04FD9189D), +dual, +helpstring("IDirectShowStream Interface"), +pointer_default(unique) +] +interface IDirectShowStream : IDispatch +{ + [propget, id(1), helpstring("property FileName")] HRESULT FileName([out, retval] BSTR *pVal); + [propput, id(1), helpstring("property FileName")] HRESULT FileName([in] BSTR newVal); + [propget, id(2), helpstring("property Video")] HRESULT Video([out, retval] OUTPUT_STATE *pVal); + [propput, id(2), helpstring("propetry Video")] HRESULT Video([in] OUTPUT_STATE newVal); + [propget, id(3), helpstring("property Audio")] HRESULT Audio([out, retval] OUTPUT_STATE *pVal); + [propput, id(3), helpstring("propetry Audio")] HRESULT Audio([in] OUTPUT_STATE newVal); +}; + +[ +object, +uuid(BEBE595C-9A6F-11d0-8FDE-00C04FD9189D), +pointer_default(unique) +] +interface IAMMultiMediaStream : IMultiMediaStream +{ + HRESULT Initialize( + [in] STREAM_TYPE StreamType, + [in] DWORD dwFlags, + [in] IGraphBuilder *pFilterGraph); + + HRESULT GetFilterGraph( + [out] IGraphBuilder **ppGraphBuilder); + + HRESULT GetFilter( + [out] IMediaStreamFilter **ppFilter); + + HRESULT AddMediaStream( + [in] IUnknown *pStreamObject, + [in] const MSPID *PurposeId, + [in] DWORD dwFlags, + [out] IMediaStream **ppNewStream); + + HRESULT OpenFile( + [in] LPCWSTR pszFileName, + [in] DWORD dwFlags); + + HRESULT OpenMoniker( + [in] IBindCtx *pCtx, + [in] IMoniker *pMoniker, + [in] DWORD dwFlags); + + HRESULT Render( + [in] DWORD dwFlags); +} + + +[ +object, +uuid(BEBE595D-9A6F-11d0-8FDE-00C04FD9189D), +pointer_default(unique) +] +interface IAMMediaStream : IMediaStream +{ + HRESULT Initialize( + [in] IUnknown *pSourceObject, + [in] DWORD dwFlags, + [in] REFMSPID PurposeId, + [in] const STREAM_TYPE StreamType); + + HRESULT SetState( + [in] FILTER_STATE State); + + HRESULT JoinAMMultiMediaStream( + [in] IAMMultiMediaStream *pAMMultiMediaStream); + + HRESULT JoinFilter( + [in] IMediaStreamFilter *pMediaStreamFilter); + + HRESULT JoinFilterGraph( + [in] IFilterGraph *pFilterGraph); +} + + +[ +object, +local, +uuid(BEBE595E-9A6F-11d0-8FDE-00C04FD9189D), +pointer_default(unique) +] +interface IMediaStreamFilter : IBaseFilter +{ + HRESULT AddMediaStream( + [in] IAMMediaStream *pAMMediaStream); + + HRESULT GetMediaStream( + [in] REFMSPID idPurpose, + [out] IMediaStream **ppMediaStream); + + HRESULT EnumMediaStreams( + [in] long Index, + [out] IMediaStream **ppMediaStream); + + HRESULT SupportSeeking( + [in] BOOL bRenderer); + + HRESULT ReferenceTimeToStreamTime( + [in] [out] REFERENCE_TIME *pTime); + + HRESULT GetCurrentStreamTime( + [out] REFERENCE_TIME *pCurrentStreamTime); + + HRESULT WaitUntil( + [in] REFERENCE_TIME WaitStreamTime); + + HRESULT Flush( + [in] BOOL bCancelEOS); + + HRESULT EndOfStream(); +} + + +[ +object, +local, +uuid(AB6B4AFC-F6E4-11d0-900D-00C04FD9189D), +pointer_default(unique) +] +interface IDirectDrawMediaSampleAllocator : IUnknown +{ + HRESULT GetDirectDraw(IDirectDraw **ppDirectDraw); +} + + +[ +object, +local, +uuid(AB6B4AFE-F6E4-11d0-900D-00C04FD9189D), +pointer_default(unique) +] +interface IDirectDrawMediaSample : IUnknown +{ + HRESULT GetSurfaceAndReleaseLock( + [out] IDirectDrawSurface **ppDirectDrawSurface, + [out] RECT * pRect); + + HRESULT LockMediaSamplePointer(void); +} + + +[ +object, +local, +uuid(AB6B4AFA-F6E4-11d0-900D-00C04FD9189D), +pointer_default(unique) +] + +interface IAMMediaTypeStream : IMediaStream +{ + HRESULT GetFormat( + [out] AM_MEDIA_TYPE * pMediaType, + [in] DWORD dwFlags); + + HRESULT SetFormat( + [in] AM_MEDIA_TYPE * pMediaType, + [in] DWORD dwFlags); + + HRESULT CreateSample( + [in] long lSampleSize, + [in] BYTE * pbBuffer, + [in] DWORD dwFlags, + [in] IUnknown *pUnkOuter, + [out] IAMMediaTypeSample ** ppAMMediaTypeSample); + + HRESULT GetStreamAllocatorRequirements( + [out] ALLOCATOR_PROPERTIES *pProps); + + HRESULT SetStreamAllocatorRequirements( + [in] ALLOCATOR_PROPERTIES *pProps); +} + + +[ +object, +local, +uuid(AB6B4AFB-F6E4-11d0-900D-00C04FD9189D), +pointer_default(unique) +] +interface IAMMediaTypeSample : IStreamSample +{ + HRESULT SetPointer( + [in] BYTE *pBuffer, + [in] long lSize); + + HRESULT GetPointer( + [out] BYTE ** ppBuffer); + + long GetSize(void); + + HRESULT GetTime( + [out] REFERENCE_TIME * pTimeStart, + [out] REFERENCE_TIME * pTimeEnd); + + HRESULT SetTime( + [in] REFERENCE_TIME * pTimeStart, + [in] REFERENCE_TIME * pTimeEnd); + + HRESULT IsSyncPoint(void); + + HRESULT SetSyncPoint( + BOOL bIsSyncPoint); + + HRESULT IsPreroll(void); + + HRESULT SetPreroll( + BOOL bIsPreroll); + + long GetActualDataLength(void); + + HRESULT SetActualDataLength(long Len); + + HRESULT GetMediaType( + AM_MEDIA_TYPE **ppMediaType); + + HRESULT SetMediaType( + AM_MEDIA_TYPE *pMediaType); + + HRESULT IsDiscontinuity(void); + + HRESULT SetDiscontinuity( + BOOL bDiscontinuity); + + HRESULT GetMediaTime( + [out] LONGLONG * pTimeStart, + [out] LONGLONG * pTimeEnd); + + HRESULT SetMediaTime( + [in] LONGLONG * pTimeStart, + [in] LONGLONG * pTimeEnd); +} + +[ + uuid(49C47CE5-9BA4-11d0-8212-00C04FC32C45) +] +coclass AMMultiMediaStream +{ + [default] dispinterface IDirectShowStream; +} + +cpp_quote("DEFINE_GUID(CLSID_AMDirectDrawStream, 0x49c47ce4, 0x9ba4, 0x11d0, 0x82, 0x12, 0x00, 0xc0, 0x4f, 0xc3, 0x2c, 0x45);") +cpp_quote("DEFINE_GUID(CLSID_AMAudioStream, 0x8496e040, 0xaf4c, 0x11d0, 0x82, 0x12, 0x00, 0xc0, 0x4f, 0xc3, 0x2c, 0x45);") +cpp_quote("DEFINE_GUID(CLSID_AMAudioData, 0xf2468580, 0xaf8a, 0x11d0, 0x82, 0x12, 0x00, 0xc0, 0x4f, 0xc3, 0x2c, 0x45);") +cpp_quote("DEFINE_GUID(CLSID_AMMediaTypeStream, 0xcf0f2f7c, 0xf7bf, 0x11d0, 0x90, 0x0d, 0x00, 0xc0, 0x4f, 0xd9, 0x18, 0x9d);") +cpp_quote("DEFINE_GUID(CLSID_MediaStreamFilter, 0x49c47ce0, 0x9ba4, 0x11d0, 0x82, 0x12, 0x00, 0xc0, 0x4f, 0xc3, 0x2c, 0x45);") diff --git a/mingw-w64-headers/direct-x/include/vmr9.h b/mingw-w64-headers/direct-x/include/vmr9.h new file mode 100644 index 000000000..48bec595d --- /dev/null +++ b/mingw-w64-headers/direct-x/include/vmr9.h @@ -0,0 +1,2443 @@ +/*** Autogenerated by WIDL 1.1.38 from vmr9.idl - Do not edit ***/ + +#include +#include + +#ifndef __WIDL_VMR9_H +#define __WIDL_VMR9_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Headers for imported files */ + +#include + +/* Forward declarations */ + +#ifndef __IVMRImagePresenter9_FWD_DEFINED__ +#define __IVMRImagePresenter9_FWD_DEFINED__ +typedef interface IVMRImagePresenter9 IVMRImagePresenter9; +#endif + +#ifndef __IVMRSurfaceAllocator9_FWD_DEFINED__ +#define __IVMRSurfaceAllocator9_FWD_DEFINED__ +typedef interface IVMRSurfaceAllocator9 IVMRSurfaceAllocator9; +#endif + +#ifndef __IVMRSurfaceAllocatorEx9_FWD_DEFINED__ +#define __IVMRSurfaceAllocatorEx9_FWD_DEFINED__ +typedef interface IVMRSurfaceAllocatorEx9 IVMRSurfaceAllocatorEx9; +#endif + +#ifndef __IVMRSurfaceAllocatorNotify9_FWD_DEFINED__ +#define __IVMRSurfaceAllocatorNotify9_FWD_DEFINED__ +typedef interface IVMRSurfaceAllocatorNotify9 IVMRSurfaceAllocatorNotify9; +#endif + +#ifndef __IVMRWindowlessControl9_FWD_DEFINED__ +#define __IVMRWindowlessControl9_FWD_DEFINED__ +typedef interface IVMRWindowlessControl9 IVMRWindowlessControl9; +#endif + +#ifndef __IVMRMixerControl9_FWD_DEFINED__ +#define __IVMRMixerControl9_FWD_DEFINED__ +typedef interface IVMRMixerControl9 IVMRMixerControl9; +#endif + +#ifndef __IVMRMixerBitmap9_FWD_DEFINED__ +#define __IVMRMixerBitmap9_FWD_DEFINED__ +typedef interface IVMRMixerBitmap9 IVMRMixerBitmap9; +#endif + +#ifndef __IVMRSurface9_FWD_DEFINED__ +#define __IVMRSurface9_FWD_DEFINED__ +typedef interface IVMRSurface9 IVMRSurface9; +#endif + +#ifndef __IVMRImagePresenterConfig9_FWD_DEFINED__ +#define __IVMRImagePresenterConfig9_FWD_DEFINED__ +typedef interface IVMRImagePresenterConfig9 IVMRImagePresenterConfig9; +#endif + +#ifndef __IVMRVideoStreamControl9_FWD_DEFINED__ +#define __IVMRVideoStreamControl9_FWD_DEFINED__ +typedef interface IVMRVideoStreamControl9 IVMRVideoStreamControl9; +#endif + +#ifndef __IVMRFilterConfig9_FWD_DEFINED__ +#define __IVMRFilterConfig9_FWD_DEFINED__ +typedef interface IVMRFilterConfig9 IVMRFilterConfig9; +#endif + +#ifndef __IVMRAspectRatioControl9_FWD_DEFINED__ +#define __IVMRAspectRatioControl9_FWD_DEFINED__ +typedef interface IVMRAspectRatioControl9 IVMRAspectRatioControl9; +#endif + +#ifndef __IVMRMonitorConfig9_FWD_DEFINED__ +#define __IVMRMonitorConfig9_FWD_DEFINED__ +typedef interface IVMRMonitorConfig9 IVMRMonitorConfig9; +#endif + +#ifndef __IVMRDeinterlaceControl9_FWD_DEFINED__ +#define __IVMRDeinterlaceControl9_FWD_DEFINED__ +typedef interface IVMRDeinterlaceControl9 IVMRDeinterlaceControl9; +#endif + +#ifndef __IVMRImageCompositor9_FWD_DEFINED__ +#define __IVMRImageCompositor9_FWD_DEFINED__ +typedef interface IVMRImageCompositor9 IVMRImageCompositor9; +#endif + + +#if 0 +#ifndef __IDirect3DSurface9_FWD_DEFINED__ +#define __IDirect3DSurface9_FWD_DEFINED__ +typedef interface IDirect3DSurface9 IDirect3DSurface9; +#endif + +#ifndef __IDirect3DDevice9_FWD_DEFINED__ +#define __IDirect3DDevice9_FWD_DEFINED__ +typedef interface IDirect3DDevice9 IDirect3DDevice9; +#endif + +typedef LONGLONG REFERENCE_TIME; +typedef DWORD D3DFORMAT; +typedef DWORD D3DPOOL; +typedef HANDLE HMONITOR; +typedef struct __WIDL_vmr9_generated_name_00000000 { + char dummy; +} AM_MEDIA_TYPE; +typedef struct __WIDL_vmr9_generated_name_00000001 { + char dummy; +} D3DCOLOR; +#endif +#ifndef __IVMRSurface9_FWD_DEFINED__ +#define __IVMRSurface9_FWD_DEFINED__ +typedef interface IVMRSurface9 IVMRSurface9; +#endif + +#ifndef __IVMRSurfaceAllocator9_FWD_DEFINED__ +#define __IVMRSurfaceAllocator9_FWD_DEFINED__ +typedef interface IVMRSurfaceAllocator9 IVMRSurfaceAllocator9; +#endif + +#ifndef __IVMRSurfaceAllocatorEx9_FWD_DEFINED__ +#define __IVMRSurfaceAllocatorEx9_FWD_DEFINED__ +typedef interface IVMRSurfaceAllocatorEx9 IVMRSurfaceAllocatorEx9; +#endif + +#ifndef __IVMRSurfaceAllocatorNotify9_FWD_DEFINED__ +#define __IVMRSurfaceAllocatorNotify9_FWD_DEFINED__ +typedef interface IVMRSurfaceAllocatorNotify9 IVMRSurfaceAllocatorNotify9; +#endif + +#ifndef __IVMRImagePresenter9_FWD_DEFINED__ +#define __IVMRImagePresenter9_FWD_DEFINED__ +typedef interface IVMRImagePresenter9 IVMRImagePresenter9; +#endif + +#ifndef __IVMRImagePresenterConfig9_FWD_DEFINED__ +#define __IVMRImagePresenterConfig9_FWD_DEFINED__ +typedef interface IVMRImagePresenterConfig9 IVMRImagePresenterConfig9; +#endif + +#ifndef __IVMRMonitorConfig9_FWD_DEFINED__ +#define __IVMRMonitorConfig9_FWD_DEFINED__ +typedef interface IVMRMonitorConfig9 IVMRMonitorConfig9; +#endif + +#ifndef __IVMRWindowlessControl9_FWD_DEFINED__ +#define __IVMRWindowlessControl9_FWD_DEFINED__ +typedef interface IVMRWindowlessControl9 IVMRWindowlessControl9; +#endif + +#ifndef __IVMRMixerControl9_FWD_DEFINED__ +#define __IVMRMixerControl9_FWD_DEFINED__ +typedef interface IVMRMixerControl9 IVMRMixerControl9; +#endif + +#ifndef __IVMRImageCompositor9_FWD_DEFINED__ +#define __IVMRImageCompositor9_FWD_DEFINED__ +typedef interface IVMRImageCompositor9 IVMRImageCompositor9; +#endif + +#ifndef __IVMRMixerBitmap9_FWD_DEFINED__ +#define __IVMRMixerBitmap9_FWD_DEFINED__ +typedef interface IVMRMixerBitmap9 IVMRMixerBitmap9; +#endif + +#ifndef __IVMRFilterConfig9_FWD_DEFINED__ +#define __IVMRFilterConfig9_FWD_DEFINED__ +typedef interface IVMRFilterConfig9 IVMRFilterConfig9; +#endif + +#ifndef __IVMRAspectRatioControl9_FWD_DEFINED__ +#define __IVMRAspectRatioControl9_FWD_DEFINED__ +typedef interface IVMRAspectRatioControl9 IVMRAspectRatioControl9; +#endif + +#ifndef __IVMRVideoStreamControl9_FWD_DEFINED__ +#define __IVMRVideoStreamControl9_FWD_DEFINED__ +typedef interface IVMRVideoStreamControl9 IVMRVideoStreamControl9; +#endif + +typedef enum _VMR9PresentationFlags { + VMR9Sample_SyncPoint = 0x1, + VMR9Sample_Preroll = 0x2, + VMR9Sample_Discontinuity = 0x4, + VMR9Sample_TimeValid = 0x8, + VMR9Sample_SrcDstRectsValid = 0x10 +} VMR9PresentationFlags; +typedef struct _VMR9PresentationInfo { + DWORD dwFlags; + IDirect3DSurface9 *lpSurf; + REFERENCE_TIME rtStart; + REFERENCE_TIME rtEnd; + SIZE szAspectRatio; + RECT rcSrc; + RECT rcDst; + DWORD dwReserved1; + DWORD dwReserved2; +} VMR9PresentationInfo; +/***************************************************************************** + * IVMRImagePresenter9 interface + */ +#ifndef __IVMRImagePresenter9_INTERFACE_DEFINED__ +#define __IVMRImagePresenter9_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IVMRImagePresenter9, 0x69188c61, 0x12a3, 0x40f0, 0x8f,0xfc, 0x34,0x2e,0x7b,0x43,0x3f,0xd7); +#if defined(__cplusplus) && !defined(CINTERFACE) +interface IVMRImagePresenter9 : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE StartPresenting( + DWORD_PTR id) = 0; + + virtual HRESULT STDMETHODCALLTYPE StopPresenting( + DWORD_PTR id) = 0; + + virtual HRESULT STDMETHODCALLTYPE PresentImage( + DWORD_PTR id, + VMR9PresentationInfo *info) = 0; + +}; +#else +typedef struct IVMRImagePresenter9Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IVMRImagePresenter9* This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IVMRImagePresenter9* This); + + ULONG (STDMETHODCALLTYPE *Release)( + IVMRImagePresenter9* This); + + /*** IVMRImagePresenter9 methods ***/ + HRESULT (STDMETHODCALLTYPE *StartPresenting)( + IVMRImagePresenter9* This, + DWORD_PTR id); + + HRESULT (STDMETHODCALLTYPE *StopPresenting)( + IVMRImagePresenter9* This, + DWORD_PTR id); + + HRESULT (STDMETHODCALLTYPE *PresentImage)( + IVMRImagePresenter9* This, + DWORD_PTR id, + VMR9PresentationInfo *info); + + END_INTERFACE +} IVMRImagePresenter9Vtbl; +interface IVMRImagePresenter9 { + CONST_VTBL IVMRImagePresenter9Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +/*** IUnknown methods ***/ +#define IVMRImagePresenter9_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IVMRImagePresenter9_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IVMRImagePresenter9_Release(This) (This)->lpVtbl->Release(This) +/*** IVMRImagePresenter9 methods ***/ +#define IVMRImagePresenter9_StartPresenting(This,id) (This)->lpVtbl->StartPresenting(This,id) +#define IVMRImagePresenter9_StopPresenting(This,id) (This)->lpVtbl->StopPresenting(This,id) +#define IVMRImagePresenter9_PresentImage(This,id,info) (This)->lpVtbl->PresentImage(This,id,info) +#endif + +#endif + +HRESULT STDMETHODCALLTYPE IVMRImagePresenter9_StartPresenting_Proxy( + IVMRImagePresenter9* This, + DWORD_PTR id); +void __RPC_STUB IVMRImagePresenter9_StartPresenting_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IVMRImagePresenter9_StopPresenting_Proxy( + IVMRImagePresenter9* This, + DWORD_PTR id); +void __RPC_STUB IVMRImagePresenter9_StopPresenting_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IVMRImagePresenter9_PresentImage_Proxy( + IVMRImagePresenter9* This, + DWORD_PTR id, + VMR9PresentationInfo *info); +void __RPC_STUB IVMRImagePresenter9_PresentImage_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); + +#endif /* __IVMRImagePresenter9_INTERFACE_DEFINED__ */ + +typedef enum _VMR9SurfaceAllocationFlags { + VMR9AllocFlag_3DRenderTarget = 0x1, + VMR9AllocFlag_DXVATarget = 0x2, + VMR9AllocFlag_TextureSurface = 0x4, + VMR9AllocFlag_OffscreenSurface = 0x8, + VMR9AllocFlag_RGBDynamicSwitch = 0x10, + VMR9AllocFlag_UsageReserved = 0xe0, + VMR9AllocFlag_UsageMask = 0xff +} VMR9SurfaceAllocationFlags; +typedef struct _VMR9AllocationInfo { + DWORD dwFlags; + DWORD dwWidth; + DWORD dwHeight; + D3DFORMAT Format; + D3DPOOL Pool; + DWORD MinBuffers; + SIZE szAspectRatio; + SIZE szNativeSize; +} VMR9AllocationInfo; +/***************************************************************************** + * IVMRSurfaceAllocator9 interface + */ +#ifndef __IVMRSurfaceAllocator9_INTERFACE_DEFINED__ +#define __IVMRSurfaceAllocator9_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IVMRSurfaceAllocator9, 0x8d5148ea, 0x3f5d, 0x46cf, 0x9d,0xf1, 0xd1,0xb8,0x96,0xee,0xdb,0x1f); +#if defined(__cplusplus) && !defined(CINTERFACE) +interface IVMRSurfaceAllocator9 : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE InitializeDevice( + DWORD_PTR id, + VMR9AllocationInfo *allocinfo, + DWORD *numbuffers) = 0; + + virtual HRESULT STDMETHODCALLTYPE TerminateDevice( + DWORD_PTR id) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetSurface( + DWORD_PTR id, + DWORD surfaceindex, + DWORD flags, + IDirect3DSurface9 **surface) = 0; + + virtual HRESULT STDMETHODCALLTYPE AdviseNotify( + IVMRSurfaceAllocatorNotify9 *allocnotify) = 0; + +}; +#else +typedef struct IVMRSurfaceAllocator9Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IVMRSurfaceAllocator9* This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IVMRSurfaceAllocator9* This); + + ULONG (STDMETHODCALLTYPE *Release)( + IVMRSurfaceAllocator9* This); + + /*** IVMRSurfaceAllocator9 methods ***/ + HRESULT (STDMETHODCALLTYPE *InitializeDevice)( + IVMRSurfaceAllocator9* This, + DWORD_PTR id, + VMR9AllocationInfo *allocinfo, + DWORD *numbuffers); + + HRESULT (STDMETHODCALLTYPE *TerminateDevice)( + IVMRSurfaceAllocator9* This, + DWORD_PTR id); + + HRESULT (STDMETHODCALLTYPE *GetSurface)( + IVMRSurfaceAllocator9* This, + DWORD_PTR id, + DWORD surfaceindex, + DWORD flags, + IDirect3DSurface9 **surface); + + HRESULT (STDMETHODCALLTYPE *AdviseNotify)( + IVMRSurfaceAllocator9* This, + IVMRSurfaceAllocatorNotify9 *allocnotify); + + END_INTERFACE +} IVMRSurfaceAllocator9Vtbl; +interface IVMRSurfaceAllocator9 { + CONST_VTBL IVMRSurfaceAllocator9Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +/*** IUnknown methods ***/ +#define IVMRSurfaceAllocator9_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IVMRSurfaceAllocator9_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IVMRSurfaceAllocator9_Release(This) (This)->lpVtbl->Release(This) +/*** IVMRSurfaceAllocator9 methods ***/ +#define IVMRSurfaceAllocator9_InitializeDevice(This,id,allocinfo,numbuffers) (This)->lpVtbl->InitializeDevice(This,id,allocinfo,numbuffers) +#define IVMRSurfaceAllocator9_TerminateDevice(This,id) (This)->lpVtbl->TerminateDevice(This,id) +#define IVMRSurfaceAllocator9_GetSurface(This,id,surfaceindex,flags,surface) (This)->lpVtbl->GetSurface(This,id,surfaceindex,flags,surface) +#define IVMRSurfaceAllocator9_AdviseNotify(This,allocnotify) (This)->lpVtbl->AdviseNotify(This,allocnotify) +#endif + +#endif + +HRESULT STDMETHODCALLTYPE IVMRSurfaceAllocator9_InitializeDevice_Proxy( + IVMRSurfaceAllocator9* This, + DWORD_PTR id, + VMR9AllocationInfo *allocinfo, + DWORD *numbuffers); +void __RPC_STUB IVMRSurfaceAllocator9_InitializeDevice_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IVMRSurfaceAllocator9_TerminateDevice_Proxy( + IVMRSurfaceAllocator9* This, + DWORD_PTR id); +void __RPC_STUB IVMRSurfaceAllocator9_TerminateDevice_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IVMRSurfaceAllocator9_GetSurface_Proxy( + IVMRSurfaceAllocator9* This, + DWORD_PTR id, + DWORD surfaceindex, + DWORD flags, + IDirect3DSurface9 **surface); +void __RPC_STUB IVMRSurfaceAllocator9_GetSurface_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IVMRSurfaceAllocator9_AdviseNotify_Proxy( + IVMRSurfaceAllocator9* This, + IVMRSurfaceAllocatorNotify9 *allocnotify); +void __RPC_STUB IVMRSurfaceAllocator9_AdviseNotify_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); + +#endif /* __IVMRSurfaceAllocator9_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IVMRSurfaceAllocatorEx9 interface + */ +#ifndef __IVMRSurfaceAllocatorEx9_INTERFACE_DEFINED__ +#define __IVMRSurfaceAllocatorEx9_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IVMRSurfaceAllocatorEx9, 0x6de9a68a, 0xa928, 0x4522, 0xbf,0x57, 0x65,0x5a,0xe3,0x86,0x64,0x56); +#if defined(__cplusplus) && !defined(CINTERFACE) +interface IVMRSurfaceAllocatorEx9 : public IVMRSurfaceAllocator9 +{ + virtual HRESULT STDMETHODCALLTYPE GetSurfaceEx( + DWORD_PTR id, + DWORD surfaceindex, + DWORD flags, + IDirect3DSurface9 **surface, + RECT *dest) = 0; + +}; +#else +typedef struct IVMRSurfaceAllocatorEx9Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IVMRSurfaceAllocatorEx9* This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IVMRSurfaceAllocatorEx9* This); + + ULONG (STDMETHODCALLTYPE *Release)( + IVMRSurfaceAllocatorEx9* This); + + /*** IVMRSurfaceAllocator9 methods ***/ + HRESULT (STDMETHODCALLTYPE *InitializeDevice)( + IVMRSurfaceAllocatorEx9* This, + DWORD_PTR id, + VMR9AllocationInfo *allocinfo, + DWORD *numbuffers); + + HRESULT (STDMETHODCALLTYPE *TerminateDevice)( + IVMRSurfaceAllocatorEx9* This, + DWORD_PTR id); + + HRESULT (STDMETHODCALLTYPE *GetSurface)( + IVMRSurfaceAllocatorEx9* This, + DWORD_PTR id, + DWORD surfaceindex, + DWORD flags, + IDirect3DSurface9 **surface); + + HRESULT (STDMETHODCALLTYPE *AdviseNotify)( + IVMRSurfaceAllocatorEx9* This, + IVMRSurfaceAllocatorNotify9 *allocnotify); + + /*** IVMRSurfaceAllocatorEx9 methods ***/ + HRESULT (STDMETHODCALLTYPE *GetSurfaceEx)( + IVMRSurfaceAllocatorEx9* This, + DWORD_PTR id, + DWORD surfaceindex, + DWORD flags, + IDirect3DSurface9 **surface, + RECT *dest); + + END_INTERFACE +} IVMRSurfaceAllocatorEx9Vtbl; +interface IVMRSurfaceAllocatorEx9 { + CONST_VTBL IVMRSurfaceAllocatorEx9Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +/*** IUnknown methods ***/ +#define IVMRSurfaceAllocatorEx9_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IVMRSurfaceAllocatorEx9_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IVMRSurfaceAllocatorEx9_Release(This) (This)->lpVtbl->Release(This) +/*** IVMRSurfaceAllocator9 methods ***/ +#define IVMRSurfaceAllocatorEx9_InitializeDevice(This,id,allocinfo,numbuffers) (This)->lpVtbl->InitializeDevice(This,id,allocinfo,numbuffers) +#define IVMRSurfaceAllocatorEx9_TerminateDevice(This,id) (This)->lpVtbl->TerminateDevice(This,id) +#define IVMRSurfaceAllocatorEx9_GetSurface(This,id,surfaceindex,flags,surface) (This)->lpVtbl->GetSurface(This,id,surfaceindex,flags,surface) +#define IVMRSurfaceAllocatorEx9_AdviseNotify(This,allocnotify) (This)->lpVtbl->AdviseNotify(This,allocnotify) +/*** IVMRSurfaceAllocatorEx9 methods ***/ +#define IVMRSurfaceAllocatorEx9_GetSurfaceEx(This,id,surfaceindex,flags,surface,dest) (This)->lpVtbl->GetSurfaceEx(This,id,surfaceindex,flags,surface,dest) +#endif + +#endif + +HRESULT STDMETHODCALLTYPE IVMRSurfaceAllocatorEx9_GetSurfaceEx_Proxy( + IVMRSurfaceAllocatorEx9* This, + DWORD_PTR id, + DWORD surfaceindex, + DWORD flags, + IDirect3DSurface9 **surface, + RECT *dest); +void __RPC_STUB IVMRSurfaceAllocatorEx9_GetSurfaceEx_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); + +#endif /* __IVMRSurfaceAllocatorEx9_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IVMRSurfaceAllocatorNotify9 interface + */ +#ifndef __IVMRSurfaceAllocatorNotify9_INTERFACE_DEFINED__ +#define __IVMRSurfaceAllocatorNotify9_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IVMRSurfaceAllocatorNotify9, 0xdca3f5df, 0xbb3a, 0x4d03, 0xbd,0x81, 0x84,0x61,0x4b,0xfb,0xfa,0x0c); +#if defined(__cplusplus) && !defined(CINTERFACE) +interface IVMRSurfaceAllocatorNotify9 : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE AdviseSurfaceAllocator( + DWORD_PTR id, + IVMRSurfaceAllocator9 *alloc) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetD3DDevice( + IDirect3DDevice9 *device, + HMONITOR monitor) = 0; + + virtual HRESULT STDMETHODCALLTYPE ChangeD3DDevice( + IDirect3DDevice9 *device, + HMONITOR monitor) = 0; + + virtual HRESULT STDMETHODCALLTYPE AllocateSurfaceHelper( + VMR9AllocationInfo *allocinfo, + DWORD *numbuffers, + IDirect3DSurface9 **surface) = 0; + + virtual HRESULT STDMETHODCALLTYPE NotifyEvent( + LONG code, + LONG_PTR param1, + LONG_PTR param2) = 0; + +}; +#else +typedef struct IVMRSurfaceAllocatorNotify9Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IVMRSurfaceAllocatorNotify9* This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IVMRSurfaceAllocatorNotify9* This); + + ULONG (STDMETHODCALLTYPE *Release)( + IVMRSurfaceAllocatorNotify9* This); + + /*** IVMRSurfaceAllocatorNotify9 methods ***/ + HRESULT (STDMETHODCALLTYPE *AdviseSurfaceAllocator)( + IVMRSurfaceAllocatorNotify9* This, + DWORD_PTR id, + IVMRSurfaceAllocator9 *alloc); + + HRESULT (STDMETHODCALLTYPE *SetD3DDevice)( + IVMRSurfaceAllocatorNotify9* This, + IDirect3DDevice9 *device, + HMONITOR monitor); + + HRESULT (STDMETHODCALLTYPE *ChangeD3DDevice)( + IVMRSurfaceAllocatorNotify9* This, + IDirect3DDevice9 *device, + HMONITOR monitor); + + HRESULT (STDMETHODCALLTYPE *AllocateSurfaceHelper)( + IVMRSurfaceAllocatorNotify9* This, + VMR9AllocationInfo *allocinfo, + DWORD *numbuffers, + IDirect3DSurface9 **surface); + + HRESULT (STDMETHODCALLTYPE *NotifyEvent)( + IVMRSurfaceAllocatorNotify9* This, + LONG code, + LONG_PTR param1, + LONG_PTR param2); + + END_INTERFACE +} IVMRSurfaceAllocatorNotify9Vtbl; +interface IVMRSurfaceAllocatorNotify9 { + CONST_VTBL IVMRSurfaceAllocatorNotify9Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +/*** IUnknown methods ***/ +#define IVMRSurfaceAllocatorNotify9_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IVMRSurfaceAllocatorNotify9_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IVMRSurfaceAllocatorNotify9_Release(This) (This)->lpVtbl->Release(This) +/*** IVMRSurfaceAllocatorNotify9 methods ***/ +#define IVMRSurfaceAllocatorNotify9_AdviseSurfaceAllocator(This,id,alloc) (This)->lpVtbl->AdviseSurfaceAllocator(This,id,alloc) +#define IVMRSurfaceAllocatorNotify9_SetD3DDevice(This,device,monitor) (This)->lpVtbl->SetD3DDevice(This,device,monitor) +#define IVMRSurfaceAllocatorNotify9_ChangeD3DDevice(This,device,monitor) (This)->lpVtbl->ChangeD3DDevice(This,device,monitor) +#define IVMRSurfaceAllocatorNotify9_AllocateSurfaceHelper(This,allocinfo,numbuffers,surface) (This)->lpVtbl->AllocateSurfaceHelper(This,allocinfo,numbuffers,surface) +#define IVMRSurfaceAllocatorNotify9_NotifyEvent(This,code,param1,param2) (This)->lpVtbl->NotifyEvent(This,code,param1,param2) +#endif + +#endif + +HRESULT STDMETHODCALLTYPE IVMRSurfaceAllocatorNotify9_AdviseSurfaceAllocator_Proxy( + IVMRSurfaceAllocatorNotify9* This, + DWORD_PTR id, + IVMRSurfaceAllocator9 *alloc); +void __RPC_STUB IVMRSurfaceAllocatorNotify9_AdviseSurfaceAllocator_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IVMRSurfaceAllocatorNotify9_SetD3DDevice_Proxy( + IVMRSurfaceAllocatorNotify9* This, + IDirect3DDevice9 *device, + HMONITOR monitor); +void __RPC_STUB IVMRSurfaceAllocatorNotify9_SetD3DDevice_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IVMRSurfaceAllocatorNotify9_ChangeD3DDevice_Proxy( + IVMRSurfaceAllocatorNotify9* This, + IDirect3DDevice9 *device, + HMONITOR monitor); +void __RPC_STUB IVMRSurfaceAllocatorNotify9_ChangeD3DDevice_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IVMRSurfaceAllocatorNotify9_AllocateSurfaceHelper_Proxy( + IVMRSurfaceAllocatorNotify9* This, + VMR9AllocationInfo *allocinfo, + DWORD *numbuffers, + IDirect3DSurface9 **surface); +void __RPC_STUB IVMRSurfaceAllocatorNotify9_AllocateSurfaceHelper_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IVMRSurfaceAllocatorNotify9_NotifyEvent_Proxy( + IVMRSurfaceAllocatorNotify9* This, + LONG code, + LONG_PTR param1, + LONG_PTR param2); +void __RPC_STUB IVMRSurfaceAllocatorNotify9_NotifyEvent_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); + +#endif /* __IVMRSurfaceAllocatorNotify9_INTERFACE_DEFINED__ */ + +typedef enum _VMR9AspectRatioMode { + VMR9ARMode_None = 0, + VMR9ARMode_LetterBox = 1 +} VMR9AspectRatioMode; +/***************************************************************************** + * IVMRWindowlessControl9 interface + */ +#ifndef __IVMRWindowlessControl9_INTERFACE_DEFINED__ +#define __IVMRWindowlessControl9_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IVMRWindowlessControl9, 0x8f537d09, 0xf85e, 0x4414, 0xb2,0x3b, 0x50,0x2e,0x54,0xc7,0x99,0x27); +#if defined(__cplusplus) && !defined(CINTERFACE) +interface IVMRWindowlessControl9 : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE GetNativeVideoSize( + LONG *width, + LONG *height, + LONG *arwidth, + LONG *arheight) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetMinIdealVideoSize( + LONG *width, + LONG *height) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetMaxIdealVideoSize( + LONG *width, + LONG *height) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetVideoPosition( + const RECT *source, + const RECT *dest) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetVideoPosition( + RECT *source, + RECT *dest) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetAspectRatioMode( + DWORD *mode) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetAspectRatioMode( + DWORD mode) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetVideoClippingWindow( + HWND hwnd) = 0; + + virtual HRESULT STDMETHODCALLTYPE RepaintVideo( + HWND hwnd, + HDC hdc) = 0; + + virtual HRESULT STDMETHODCALLTYPE DisplayModeChanged( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetCurrentImage( + BYTE **dib) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetBorderColor( + COLORREF color) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetBorderColor( + COLORREF *color) = 0; + +}; +#else +typedef struct IVMRWindowlessControl9Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IVMRWindowlessControl9* This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IVMRWindowlessControl9* This); + + ULONG (STDMETHODCALLTYPE *Release)( + IVMRWindowlessControl9* This); + + /*** IVMRWindowlessControl9 methods ***/ + HRESULT (STDMETHODCALLTYPE *GetNativeVideoSize)( + IVMRWindowlessControl9* This, + LONG *width, + LONG *height, + LONG *arwidth, + LONG *arheight); + + HRESULT (STDMETHODCALLTYPE *GetMinIdealVideoSize)( + IVMRWindowlessControl9* This, + LONG *width, + LONG *height); + + HRESULT (STDMETHODCALLTYPE *GetMaxIdealVideoSize)( + IVMRWindowlessControl9* This, + LONG *width, + LONG *height); + + HRESULT (STDMETHODCALLTYPE *SetVideoPosition)( + IVMRWindowlessControl9* This, + const RECT *source, + const RECT *dest); + + HRESULT (STDMETHODCALLTYPE *GetVideoPosition)( + IVMRWindowlessControl9* This, + RECT *source, + RECT *dest); + + HRESULT (STDMETHODCALLTYPE *GetAspectRatioMode)( + IVMRWindowlessControl9* This, + DWORD *mode); + + HRESULT (STDMETHODCALLTYPE *SetAspectRatioMode)( + IVMRWindowlessControl9* This, + DWORD mode); + + HRESULT (STDMETHODCALLTYPE *SetVideoClippingWindow)( + IVMRWindowlessControl9* This, + HWND hwnd); + + HRESULT (STDMETHODCALLTYPE *RepaintVideo)( + IVMRWindowlessControl9* This, + HWND hwnd, + HDC hdc); + + HRESULT (STDMETHODCALLTYPE *DisplayModeChanged)( + IVMRWindowlessControl9* This); + + HRESULT (STDMETHODCALLTYPE *GetCurrentImage)( + IVMRWindowlessControl9* This, + BYTE **dib); + + HRESULT (STDMETHODCALLTYPE *SetBorderColor)( + IVMRWindowlessControl9* This, + COLORREF color); + + HRESULT (STDMETHODCALLTYPE *GetBorderColor)( + IVMRWindowlessControl9* This, + COLORREF *color); + + END_INTERFACE +} IVMRWindowlessControl9Vtbl; +interface IVMRWindowlessControl9 { + CONST_VTBL IVMRWindowlessControl9Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +/*** IUnknown methods ***/ +#define IVMRWindowlessControl9_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IVMRWindowlessControl9_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IVMRWindowlessControl9_Release(This) (This)->lpVtbl->Release(This) +/*** IVMRWindowlessControl9 methods ***/ +#define IVMRWindowlessControl9_GetNativeVideoSize(This,width,height,arwidth,arheight) (This)->lpVtbl->GetNativeVideoSize(This,width,height,arwidth,arheight) +#define IVMRWindowlessControl9_GetMinIdealVideoSize(This,width,height) (This)->lpVtbl->GetMinIdealVideoSize(This,width,height) +#define IVMRWindowlessControl9_GetMaxIdealVideoSize(This,width,height) (This)->lpVtbl->GetMaxIdealVideoSize(This,width,height) +#define IVMRWindowlessControl9_SetVideoPosition(This,source,dest) (This)->lpVtbl->SetVideoPosition(This,source,dest) +#define IVMRWindowlessControl9_GetVideoPosition(This,source,dest) (This)->lpVtbl->GetVideoPosition(This,source,dest) +#define IVMRWindowlessControl9_GetAspectRatioMode(This,mode) (This)->lpVtbl->GetAspectRatioMode(This,mode) +#define IVMRWindowlessControl9_SetAspectRatioMode(This,mode) (This)->lpVtbl->SetAspectRatioMode(This,mode) +#define IVMRWindowlessControl9_SetVideoClippingWindow(This,hwnd) (This)->lpVtbl->SetVideoClippingWindow(This,hwnd) +#define IVMRWindowlessControl9_RepaintVideo(This,hwnd,hdc) (This)->lpVtbl->RepaintVideo(This,hwnd,hdc) +#define IVMRWindowlessControl9_DisplayModeChanged(This) (This)->lpVtbl->DisplayModeChanged(This) +#define IVMRWindowlessControl9_GetCurrentImage(This,dib) (This)->lpVtbl->GetCurrentImage(This,dib) +#define IVMRWindowlessControl9_SetBorderColor(This,color) (This)->lpVtbl->SetBorderColor(This,color) +#define IVMRWindowlessControl9_GetBorderColor(This,color) (This)->lpVtbl->GetBorderColor(This,color) +#endif + +#endif + +HRESULT STDMETHODCALLTYPE IVMRWindowlessControl9_GetNativeVideoSize_Proxy( + IVMRWindowlessControl9* This, + LONG *width, + LONG *height, + LONG *arwidth, + LONG *arheight); +void __RPC_STUB IVMRWindowlessControl9_GetNativeVideoSize_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IVMRWindowlessControl9_GetMinIdealVideoSize_Proxy( + IVMRWindowlessControl9* This, + LONG *width, + LONG *height); +void __RPC_STUB IVMRWindowlessControl9_GetMinIdealVideoSize_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IVMRWindowlessControl9_GetMaxIdealVideoSize_Proxy( + IVMRWindowlessControl9* This, + LONG *width, + LONG *height); +void __RPC_STUB IVMRWindowlessControl9_GetMaxIdealVideoSize_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IVMRWindowlessControl9_SetVideoPosition_Proxy( + IVMRWindowlessControl9* This, + const RECT *source, + const RECT *dest); +void __RPC_STUB IVMRWindowlessControl9_SetVideoPosition_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IVMRWindowlessControl9_GetVideoPosition_Proxy( + IVMRWindowlessControl9* This, + RECT *source, + RECT *dest); +void __RPC_STUB IVMRWindowlessControl9_GetVideoPosition_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IVMRWindowlessControl9_GetAspectRatioMode_Proxy( + IVMRWindowlessControl9* This, + DWORD *mode); +void __RPC_STUB IVMRWindowlessControl9_GetAspectRatioMode_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IVMRWindowlessControl9_SetAspectRatioMode_Proxy( + IVMRWindowlessControl9* This, + DWORD mode); +void __RPC_STUB IVMRWindowlessControl9_SetAspectRatioMode_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IVMRWindowlessControl9_SetVideoClippingWindow_Proxy( + IVMRWindowlessControl9* This, + HWND hwnd); +void __RPC_STUB IVMRWindowlessControl9_SetVideoClippingWindow_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IVMRWindowlessControl9_RepaintVideo_Proxy( + IVMRWindowlessControl9* This, + HWND hwnd, + HDC hdc); +void __RPC_STUB IVMRWindowlessControl9_RepaintVideo_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IVMRWindowlessControl9_DisplayModeChanged_Proxy( + IVMRWindowlessControl9* This); +void __RPC_STUB IVMRWindowlessControl9_DisplayModeChanged_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IVMRWindowlessControl9_GetCurrentImage_Proxy( + IVMRWindowlessControl9* This, + BYTE **dib); +void __RPC_STUB IVMRWindowlessControl9_GetCurrentImage_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IVMRWindowlessControl9_SetBorderColor_Proxy( + IVMRWindowlessControl9* This, + COLORREF color); +void __RPC_STUB IVMRWindowlessControl9_SetBorderColor_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IVMRWindowlessControl9_GetBorderColor_Proxy( + IVMRWindowlessControl9* This, + COLORREF *color); +void __RPC_STUB IVMRWindowlessControl9_GetBorderColor_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); + +#endif /* __IVMRWindowlessControl9_INTERFACE_DEFINED__ */ + +typedef enum _VMR9MixerPrefs { + MixerPref9_NoDecimation = 0x1, + MixerPref9_DecimateOutput = 0x2, + MixerPref9_ARAdjustXorY = 0x4, + MixerPref9_NonSquareMixing = 0x8, + MixerPref9_DecimateMask = 0xf, + MixerPref9_BiLinearFiltering = 0x10, + MixerPref9_PointFiltering = 0x20, + MixerPref9_AnisotropicFiltering = 0x40, + MixerPref9_PyramidalQuadFiltering = 0x80, + MixerPref9_GaussianQuadFiltering = 0x100, + MixerPref9_FilteringReserved = 0xe00, + MixerPref9_FilteringMask = 0xff0, + MixerPref9_RenderTargetRGB = 0x1000, + MixerPref9_RenderTargetYUV = 0x2000, + MixerPref9_RenderTargetReserved = 0xfc000, + MixerPref9_DynamicSwitchToBOB = 0x100000, + MixerPref9_DynamicDecimateBy2 = 0x200000, + MixerPref9_DynamicReserved = 0xc00000, + MixerPref9_DynamicMask = 0xf00000 +} VMR9MixerPrefs; +typedef struct _VMR9NormalizedRect { + FLOAT left; + FLOAT top; + FLOAT right; + FLOAT bottom; +} VMR9NormalizedRect; +typedef enum _VMR9ProcAmpControlFlags { + ProcAmpControl9_Brightness = 0x1, + ProcAmpControl9_Contrast = 0x2, + ProcAmpControl9_Hue = 0x4, + ProcAmpControl9_Saturation = 0x8, + ProcAmpControl9_Mask = 0xf +} VMR9ProcAmpControlFlags; +typedef struct _VMR9ProcAmpControl { + DWORD dwSize; + DWORD dwFlags; + FLOAT Brightness; + FLOAT Contrast; + FLOAT Hue; + FLOAT Saturation; +} VMR9ProcAmpControl; +typedef struct _VMR9ProcAmpControlRange { + DWORD dwSize; + VMR9ProcAmpControlFlags dwProperty; + FLOAT MinValue; + FLOAT MaxValue; + FLOAT DefaultValue; + FLOAT StepSize; +} VMR9ProcAmpControlRange; +/***************************************************************************** + * IVMRMixerControl9 interface + */ +#ifndef __IVMRMixerControl9_INTERFACE_DEFINED__ +#define __IVMRMixerControl9_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IVMRMixerControl9, 0x1a777eaa, 0x47c8, 0x4930, 0xb2,0xc9, 0x8f,0xee,0x1c,0x1b,0x0f,0x3b); +#if defined(__cplusplus) && !defined(CINTERFACE) +interface IVMRMixerControl9 : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE SetAlpha( + DWORD streamid, + FLOAT alpha) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetAlpha( + DWORD streamid, + FLOAT *alpha) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetZOrder( + DWORD streamid, + DWORD zorder) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetZOrder( + DWORD streamid, + DWORD *zorder) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetOutputRect( + DWORD streamid, + const VMR9NormalizedRect *rect) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetOutputRect( + DWORD streamid, + VMR9NormalizedRect *rect) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetBackgroundClr( + COLORREF back) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetBackgroundClr( + COLORREF *back) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetMixingPrefs( + DWORD mixingprefs) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetMixingPrefs( + DWORD *mixingprefs) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetProcAmpControl( + DWORD streamid, + VMR9ProcAmpControl *control) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetProcAmpControl( + DWORD streamid, + VMR9ProcAmpControl *control) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetProcAmpControlRange( + DWORD streamid, + VMR9ProcAmpControlRange *controlrange) = 0; + +}; +#else +typedef struct IVMRMixerControl9Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IVMRMixerControl9* This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IVMRMixerControl9* This); + + ULONG (STDMETHODCALLTYPE *Release)( + IVMRMixerControl9* This); + + /*** IVMRMixerControl9 methods ***/ + HRESULT (STDMETHODCALLTYPE *SetAlpha)( + IVMRMixerControl9* This, + DWORD streamid, + FLOAT alpha); + + HRESULT (STDMETHODCALLTYPE *GetAlpha)( + IVMRMixerControl9* This, + DWORD streamid, + FLOAT *alpha); + + HRESULT (STDMETHODCALLTYPE *SetZOrder)( + IVMRMixerControl9* This, + DWORD streamid, + DWORD zorder); + + HRESULT (STDMETHODCALLTYPE *GetZOrder)( + IVMRMixerControl9* This, + DWORD streamid, + DWORD *zorder); + + HRESULT (STDMETHODCALLTYPE *SetOutputRect)( + IVMRMixerControl9* This, + DWORD streamid, + const VMR9NormalizedRect *rect); + + HRESULT (STDMETHODCALLTYPE *GetOutputRect)( + IVMRMixerControl9* This, + DWORD streamid, + VMR9NormalizedRect *rect); + + HRESULT (STDMETHODCALLTYPE *SetBackgroundClr)( + IVMRMixerControl9* This, + COLORREF back); + + HRESULT (STDMETHODCALLTYPE *GetBackgroundClr)( + IVMRMixerControl9* This, + COLORREF *back); + + HRESULT (STDMETHODCALLTYPE *SetMixingPrefs)( + IVMRMixerControl9* This, + DWORD mixingprefs); + + HRESULT (STDMETHODCALLTYPE *GetMixingPrefs)( + IVMRMixerControl9* This, + DWORD *mixingprefs); + + HRESULT (STDMETHODCALLTYPE *SetProcAmpControl)( + IVMRMixerControl9* This, + DWORD streamid, + VMR9ProcAmpControl *control); + + HRESULT (STDMETHODCALLTYPE *GetProcAmpControl)( + IVMRMixerControl9* This, + DWORD streamid, + VMR9ProcAmpControl *control); + + HRESULT (STDMETHODCALLTYPE *GetProcAmpControlRange)( + IVMRMixerControl9* This, + DWORD streamid, + VMR9ProcAmpControlRange *controlrange); + + END_INTERFACE +} IVMRMixerControl9Vtbl; +interface IVMRMixerControl9 { + CONST_VTBL IVMRMixerControl9Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +/*** IUnknown methods ***/ +#define IVMRMixerControl9_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IVMRMixerControl9_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IVMRMixerControl9_Release(This) (This)->lpVtbl->Release(This) +/*** IVMRMixerControl9 methods ***/ +#define IVMRMixerControl9_SetAlpha(This,streamid,alpha) (This)->lpVtbl->SetAlpha(This,streamid,alpha) +#define IVMRMixerControl9_GetAlpha(This,streamid,alpha) (This)->lpVtbl->GetAlpha(This,streamid,alpha) +#define IVMRMixerControl9_SetZOrder(This,streamid,zorder) (This)->lpVtbl->SetZOrder(This,streamid,zorder) +#define IVMRMixerControl9_GetZOrder(This,streamid,zorder) (This)->lpVtbl->GetZOrder(This,streamid,zorder) +#define IVMRMixerControl9_SetOutputRect(This,streamid,rect) (This)->lpVtbl->SetOutputRect(This,streamid,rect) +#define IVMRMixerControl9_GetOutputRect(This,streamid,rect) (This)->lpVtbl->GetOutputRect(This,streamid,rect) +#define IVMRMixerControl9_SetBackgroundClr(This,back) (This)->lpVtbl->SetBackgroundClr(This,back) +#define IVMRMixerControl9_GetBackgroundClr(This,back) (This)->lpVtbl->GetBackgroundClr(This,back) +#define IVMRMixerControl9_SetMixingPrefs(This,mixingprefs) (This)->lpVtbl->SetMixingPrefs(This,mixingprefs) +#define IVMRMixerControl9_GetMixingPrefs(This,mixingprefs) (This)->lpVtbl->GetMixingPrefs(This,mixingprefs) +#define IVMRMixerControl9_SetProcAmpControl(This,streamid,control) (This)->lpVtbl->SetProcAmpControl(This,streamid,control) +#define IVMRMixerControl9_GetProcAmpControl(This,streamid,control) (This)->lpVtbl->GetProcAmpControl(This,streamid,control) +#define IVMRMixerControl9_GetProcAmpControlRange(This,streamid,controlrange) (This)->lpVtbl->GetProcAmpControlRange(This,streamid,controlrange) +#endif + +#endif + +HRESULT STDMETHODCALLTYPE IVMRMixerControl9_SetAlpha_Proxy( + IVMRMixerControl9* This, + DWORD streamid, + FLOAT alpha); +void __RPC_STUB IVMRMixerControl9_SetAlpha_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IVMRMixerControl9_GetAlpha_Proxy( + IVMRMixerControl9* This, + DWORD streamid, + FLOAT *alpha); +void __RPC_STUB IVMRMixerControl9_GetAlpha_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IVMRMixerControl9_SetZOrder_Proxy( + IVMRMixerControl9* This, + DWORD streamid, + DWORD zorder); +void __RPC_STUB IVMRMixerControl9_SetZOrder_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IVMRMixerControl9_GetZOrder_Proxy( + IVMRMixerControl9* This, + DWORD streamid, + DWORD *zorder); +void __RPC_STUB IVMRMixerControl9_GetZOrder_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IVMRMixerControl9_SetOutputRect_Proxy( + IVMRMixerControl9* This, + DWORD streamid, + const VMR9NormalizedRect *rect); +void __RPC_STUB IVMRMixerControl9_SetOutputRect_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IVMRMixerControl9_GetOutputRect_Proxy( + IVMRMixerControl9* This, + DWORD streamid, + VMR9NormalizedRect *rect); +void __RPC_STUB IVMRMixerControl9_GetOutputRect_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IVMRMixerControl9_SetBackgroundClr_Proxy( + IVMRMixerControl9* This, + COLORREF back); +void __RPC_STUB IVMRMixerControl9_SetBackgroundClr_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IVMRMixerControl9_GetBackgroundClr_Proxy( + IVMRMixerControl9* This, + COLORREF *back); +void __RPC_STUB IVMRMixerControl9_GetBackgroundClr_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IVMRMixerControl9_SetMixingPrefs_Proxy( + IVMRMixerControl9* This, + DWORD mixingprefs); +void __RPC_STUB IVMRMixerControl9_SetMixingPrefs_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IVMRMixerControl9_GetMixingPrefs_Proxy( + IVMRMixerControl9* This, + DWORD *mixingprefs); +void __RPC_STUB IVMRMixerControl9_GetMixingPrefs_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IVMRMixerControl9_SetProcAmpControl_Proxy( + IVMRMixerControl9* This, + DWORD streamid, + VMR9ProcAmpControl *control); +void __RPC_STUB IVMRMixerControl9_SetProcAmpControl_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IVMRMixerControl9_GetProcAmpControl_Proxy( + IVMRMixerControl9* This, + DWORD streamid, + VMR9ProcAmpControl *control); +void __RPC_STUB IVMRMixerControl9_GetProcAmpControl_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IVMRMixerControl9_GetProcAmpControlRange_Proxy( + IVMRMixerControl9* This, + DWORD streamid, + VMR9ProcAmpControlRange *controlrange); +void __RPC_STUB IVMRMixerControl9_GetProcAmpControlRange_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); + +#endif /* __IVMRMixerControl9_INTERFACE_DEFINED__ */ + +typedef struct _VMR9AlphaBitmap { + DWORD dwFlags; + HDC hdc; + IDirect3DSurface9 *pDDS; + RECT rSrc; + VMR9NormalizedRect *rDest; + FLOAT fAlpha; + COLORREF clrSrcKey; + DWORD dwFilterMode; +} VMR9AlphaBitmap; +typedef enum _VMR9AlphaBitmapFlags { + VMR9AlphaBitmap_Disable = 0x1, + VMR9AlphaBitmap_hDC = 0x2, + VMR9AlphaBitmap_EntireDDS = 0x4, + VMR9AlphaBitmap_SrcColorKey = 0x8, + VMR9AlphaBitmap_SrcRect = 0x10, + VMR9AlphaBitmap_FilterMode = 0x20 +} VMR9AlphaBitmapFlags; +/***************************************************************************** + * IVMRMixerBitmap9 interface + */ +#ifndef __IVMRMixerBitmap9_INTERFACE_DEFINED__ +#define __IVMRMixerBitmap9_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IVMRMixerBitmap9, 0xced175e5, 0x1935, 0x4820, 0x81,0xbd, 0xff,0x6a,0xd0,0x0c,0x91,0x08); +#if defined(__cplusplus) && !defined(CINTERFACE) +interface IVMRMixerBitmap9 : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE SetAlphaBitmap( + const VMR9AlphaBitmap *bitmap) = 0; + + virtual HRESULT STDMETHODCALLTYPE UpdateAlphaBitmapParameters( + const VMR9AlphaBitmap *bitmap) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetAlphaBitmapParameters( + VMR9AlphaBitmap *bitmap) = 0; + +}; +#else +typedef struct IVMRMixerBitmap9Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IVMRMixerBitmap9* This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IVMRMixerBitmap9* This); + + ULONG (STDMETHODCALLTYPE *Release)( + IVMRMixerBitmap9* This); + + /*** IVMRMixerBitmap9 methods ***/ + HRESULT (STDMETHODCALLTYPE *SetAlphaBitmap)( + IVMRMixerBitmap9* This, + const VMR9AlphaBitmap *bitmap); + + HRESULT (STDMETHODCALLTYPE *UpdateAlphaBitmapParameters)( + IVMRMixerBitmap9* This, + const VMR9AlphaBitmap *bitmap); + + HRESULT (STDMETHODCALLTYPE *GetAlphaBitmapParameters)( + IVMRMixerBitmap9* This, + VMR9AlphaBitmap *bitmap); + + END_INTERFACE +} IVMRMixerBitmap9Vtbl; +interface IVMRMixerBitmap9 { + CONST_VTBL IVMRMixerBitmap9Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +/*** IUnknown methods ***/ +#define IVMRMixerBitmap9_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IVMRMixerBitmap9_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IVMRMixerBitmap9_Release(This) (This)->lpVtbl->Release(This) +/*** IVMRMixerBitmap9 methods ***/ +#define IVMRMixerBitmap9_SetAlphaBitmap(This,bitmap) (This)->lpVtbl->SetAlphaBitmap(This,bitmap) +#define IVMRMixerBitmap9_UpdateAlphaBitmapParameters(This,bitmap) (This)->lpVtbl->UpdateAlphaBitmapParameters(This,bitmap) +#define IVMRMixerBitmap9_GetAlphaBitmapParameters(This,bitmap) (This)->lpVtbl->GetAlphaBitmapParameters(This,bitmap) +#endif + +#endif + +HRESULT STDMETHODCALLTYPE IVMRMixerBitmap9_SetAlphaBitmap_Proxy( + IVMRMixerBitmap9* This, + const VMR9AlphaBitmap *bitmap); +void __RPC_STUB IVMRMixerBitmap9_SetAlphaBitmap_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IVMRMixerBitmap9_UpdateAlphaBitmapParameters_Proxy( + IVMRMixerBitmap9* This, + const VMR9AlphaBitmap *bitmap); +void __RPC_STUB IVMRMixerBitmap9_UpdateAlphaBitmapParameters_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IVMRMixerBitmap9_GetAlphaBitmapParameters_Proxy( + IVMRMixerBitmap9* This, + VMR9AlphaBitmap *bitmap); +void __RPC_STUB IVMRMixerBitmap9_GetAlphaBitmapParameters_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); + +#endif /* __IVMRMixerBitmap9_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IVMRSurface9 interface + */ +#ifndef __IVMRSurface9_INTERFACE_DEFINED__ +#define __IVMRSurface9_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IVMRSurface9, 0xdfc581a1, 0x6e1f, 0x4c3a, 0x8d,0x0a, 0x5e,0x97,0x92,0xea,0x2a,0xfc); +#if defined(__cplusplus) && !defined(CINTERFACE) +interface IVMRSurface9 : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE IsSurfaceLocked( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE LockSurface( + BYTE **surface) = 0; + + virtual HRESULT STDMETHODCALLTYPE UnlockSurface( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetSurface( + IDirect3DSurface9 **surface) = 0; + +}; +#else +typedef struct IVMRSurface9Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IVMRSurface9* This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IVMRSurface9* This); + + ULONG (STDMETHODCALLTYPE *Release)( + IVMRSurface9* This); + + /*** IVMRSurface9 methods ***/ + HRESULT (STDMETHODCALLTYPE *IsSurfaceLocked)( + IVMRSurface9* This); + + HRESULT (STDMETHODCALLTYPE *LockSurface)( + IVMRSurface9* This, + BYTE **surface); + + HRESULT (STDMETHODCALLTYPE *UnlockSurface)( + IVMRSurface9* This); + + HRESULT (STDMETHODCALLTYPE *GetSurface)( + IVMRSurface9* This, + IDirect3DSurface9 **surface); + + END_INTERFACE +} IVMRSurface9Vtbl; +interface IVMRSurface9 { + CONST_VTBL IVMRSurface9Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +/*** IUnknown methods ***/ +#define IVMRSurface9_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IVMRSurface9_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IVMRSurface9_Release(This) (This)->lpVtbl->Release(This) +/*** IVMRSurface9 methods ***/ +#define IVMRSurface9_IsSurfaceLocked(This) (This)->lpVtbl->IsSurfaceLocked(This) +#define IVMRSurface9_LockSurface(This,surface) (This)->lpVtbl->LockSurface(This,surface) +#define IVMRSurface9_UnlockSurface(This) (This)->lpVtbl->UnlockSurface(This) +#define IVMRSurface9_GetSurface(This,surface) (This)->lpVtbl->GetSurface(This,surface) +#endif + +#endif + +HRESULT STDMETHODCALLTYPE IVMRSurface9_IsSurfaceLocked_Proxy( + IVMRSurface9* This); +void __RPC_STUB IVMRSurface9_IsSurfaceLocked_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IVMRSurface9_LockSurface_Proxy( + IVMRSurface9* This, + BYTE **surface); +void __RPC_STUB IVMRSurface9_LockSurface_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IVMRSurface9_UnlockSurface_Proxy( + IVMRSurface9* This); +void __RPC_STUB IVMRSurface9_UnlockSurface_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IVMRSurface9_GetSurface_Proxy( + IVMRSurface9* This, + IDirect3DSurface9 **surface); +void __RPC_STUB IVMRSurface9_GetSurface_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); + +#endif /* __IVMRSurface9_INTERFACE_DEFINED__ */ + +typedef enum _VMR9RenderPrefs { + RenderPrefs9_DoNotRenderBorder = 0x1, + RenderPrefs9_Mask = 0x1 +} VMR9RenderPrefs; +/***************************************************************************** + * IVMRImagePresenterConfig9 interface + */ +#ifndef __IVMRImagePresenterConfig9_INTERFACE_DEFINED__ +#define __IVMRImagePresenterConfig9_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IVMRImagePresenterConfig9, 0x45c15cab, 0x6e22, 0x420a, 0x80,0x43, 0xae,0x1f,0x0a,0xc0,0x2c,0x7d); +#if defined(__cplusplus) && !defined(CINTERFACE) +interface IVMRImagePresenterConfig9 : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE SetRenderingPrefs( + DWORD renderflags) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetRenderingPrefs( + DWORD *renderflags) = 0; + +}; +#else +typedef struct IVMRImagePresenterConfig9Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IVMRImagePresenterConfig9* This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IVMRImagePresenterConfig9* This); + + ULONG (STDMETHODCALLTYPE *Release)( + IVMRImagePresenterConfig9* This); + + /*** IVMRImagePresenterConfig9 methods ***/ + HRESULT (STDMETHODCALLTYPE *SetRenderingPrefs)( + IVMRImagePresenterConfig9* This, + DWORD renderflags); + + HRESULT (STDMETHODCALLTYPE *GetRenderingPrefs)( + IVMRImagePresenterConfig9* This, + DWORD *renderflags); + + END_INTERFACE +} IVMRImagePresenterConfig9Vtbl; +interface IVMRImagePresenterConfig9 { + CONST_VTBL IVMRImagePresenterConfig9Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +/*** IUnknown methods ***/ +#define IVMRImagePresenterConfig9_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IVMRImagePresenterConfig9_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IVMRImagePresenterConfig9_Release(This) (This)->lpVtbl->Release(This) +/*** IVMRImagePresenterConfig9 methods ***/ +#define IVMRImagePresenterConfig9_SetRenderingPrefs(This,renderflags) (This)->lpVtbl->SetRenderingPrefs(This,renderflags) +#define IVMRImagePresenterConfig9_GetRenderingPrefs(This,renderflags) (This)->lpVtbl->GetRenderingPrefs(This,renderflags) +#endif + +#endif + +HRESULT STDMETHODCALLTYPE IVMRImagePresenterConfig9_SetRenderingPrefs_Proxy( + IVMRImagePresenterConfig9* This, + DWORD renderflags); +void __RPC_STUB IVMRImagePresenterConfig9_SetRenderingPrefs_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IVMRImagePresenterConfig9_GetRenderingPrefs_Proxy( + IVMRImagePresenterConfig9* This, + DWORD *renderflags); +void __RPC_STUB IVMRImagePresenterConfig9_GetRenderingPrefs_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); + +#endif /* __IVMRImagePresenterConfig9_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IVMRVideoStreamControl9 interface + */ +#ifndef __IVMRVideoStreamControl9_INTERFACE_DEFINED__ +#define __IVMRVideoStreamControl9_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IVMRVideoStreamControl9, 0xd0cfe38b, 0x93e7, 0x4772, 0x89,0x57, 0x04,0x00,0xc4,0x9a,0x44,0x85); +#if defined(__cplusplus) && !defined(CINTERFACE) +interface IVMRVideoStreamControl9 : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE SetStreamActiveState( + BOOL active) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetStreamActiveState( + BOOL *active) = 0; + +}; +#else +typedef struct IVMRVideoStreamControl9Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IVMRVideoStreamControl9* This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IVMRVideoStreamControl9* This); + + ULONG (STDMETHODCALLTYPE *Release)( + IVMRVideoStreamControl9* This); + + /*** IVMRVideoStreamControl9 methods ***/ + HRESULT (STDMETHODCALLTYPE *SetStreamActiveState)( + IVMRVideoStreamControl9* This, + BOOL active); + + HRESULT (STDMETHODCALLTYPE *GetStreamActiveState)( + IVMRVideoStreamControl9* This, + BOOL *active); + + END_INTERFACE +} IVMRVideoStreamControl9Vtbl; +interface IVMRVideoStreamControl9 { + CONST_VTBL IVMRVideoStreamControl9Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +/*** IUnknown methods ***/ +#define IVMRVideoStreamControl9_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IVMRVideoStreamControl9_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IVMRVideoStreamControl9_Release(This) (This)->lpVtbl->Release(This) +/*** IVMRVideoStreamControl9 methods ***/ +#define IVMRVideoStreamControl9_SetStreamActiveState(This,active) (This)->lpVtbl->SetStreamActiveState(This,active) +#define IVMRVideoStreamControl9_GetStreamActiveState(This,active) (This)->lpVtbl->GetStreamActiveState(This,active) +#endif + +#endif + +HRESULT STDMETHODCALLTYPE IVMRVideoStreamControl9_SetStreamActiveState_Proxy( + IVMRVideoStreamControl9* This, + BOOL active); +void __RPC_STUB IVMRVideoStreamControl9_SetStreamActiveState_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IVMRVideoStreamControl9_GetStreamActiveState_Proxy( + IVMRVideoStreamControl9* This, + BOOL *active); +void __RPC_STUB IVMRVideoStreamControl9_GetStreamActiveState_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); + +#endif /* __IVMRVideoStreamControl9_INTERFACE_DEFINED__ */ + +typedef enum _VMR9Mode { + VMR9Mode_Windowed = 0x1, + VMR9Mode_Windowless = 0x2, + VMR9Mode_Renderless = 0x4, + VMR9Mode_Mask = 0x7 +} VMR9Mode; +/***************************************************************************** + * IVMRFilterConfig9 interface + */ +#ifndef __IVMRFilterConfig9_INTERFACE_DEFINED__ +#define __IVMRFilterConfig9_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IVMRFilterConfig9, 0x5a804648, 0x4f66, 0x4867, 0x9c,0x43, 0x4f,0x5c,0x82,0x2c,0xf1,0xb8); +#if defined(__cplusplus) && !defined(CINTERFACE) +interface IVMRFilterConfig9 : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE SetImageCompositor( + IVMRImageCompositor9 *compositor) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetNumberOfStreams( + DWORD max) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetNumberOfStreams( + DWORD *max) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetRenderingPrefs( + DWORD renderflags) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetRenderingPrefs( + DWORD *renderflags) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetRenderingMode( + DWORD mode) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetRenderingMode( + DWORD *mode) = 0; + +}; +#else +typedef struct IVMRFilterConfig9Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IVMRFilterConfig9* This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IVMRFilterConfig9* This); + + ULONG (STDMETHODCALLTYPE *Release)( + IVMRFilterConfig9* This); + + /*** IVMRFilterConfig9 methods ***/ + HRESULT (STDMETHODCALLTYPE *SetImageCompositor)( + IVMRFilterConfig9* This, + IVMRImageCompositor9 *compositor); + + HRESULT (STDMETHODCALLTYPE *SetNumberOfStreams)( + IVMRFilterConfig9* This, + DWORD max); + + HRESULT (STDMETHODCALLTYPE *GetNumberOfStreams)( + IVMRFilterConfig9* This, + DWORD *max); + + HRESULT (STDMETHODCALLTYPE *SetRenderingPrefs)( + IVMRFilterConfig9* This, + DWORD renderflags); + + HRESULT (STDMETHODCALLTYPE *GetRenderingPrefs)( + IVMRFilterConfig9* This, + DWORD *renderflags); + + HRESULT (STDMETHODCALLTYPE *SetRenderingMode)( + IVMRFilterConfig9* This, + DWORD mode); + + HRESULT (STDMETHODCALLTYPE *GetRenderingMode)( + IVMRFilterConfig9* This, + DWORD *mode); + + END_INTERFACE +} IVMRFilterConfig9Vtbl; +interface IVMRFilterConfig9 { + CONST_VTBL IVMRFilterConfig9Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +/*** IUnknown methods ***/ +#define IVMRFilterConfig9_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IVMRFilterConfig9_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IVMRFilterConfig9_Release(This) (This)->lpVtbl->Release(This) +/*** IVMRFilterConfig9 methods ***/ +#define IVMRFilterConfig9_SetImageCompositor(This,compositor) (This)->lpVtbl->SetImageCompositor(This,compositor) +#define IVMRFilterConfig9_SetNumberOfStreams(This,max) (This)->lpVtbl->SetNumberOfStreams(This,max) +#define IVMRFilterConfig9_GetNumberOfStreams(This,max) (This)->lpVtbl->GetNumberOfStreams(This,max) +#define IVMRFilterConfig9_SetRenderingPrefs(This,renderflags) (This)->lpVtbl->SetRenderingPrefs(This,renderflags) +#define IVMRFilterConfig9_GetRenderingPrefs(This,renderflags) (This)->lpVtbl->GetRenderingPrefs(This,renderflags) +#define IVMRFilterConfig9_SetRenderingMode(This,mode) (This)->lpVtbl->SetRenderingMode(This,mode) +#define IVMRFilterConfig9_GetRenderingMode(This,mode) (This)->lpVtbl->GetRenderingMode(This,mode) +#endif + +#endif + +HRESULT STDMETHODCALLTYPE IVMRFilterConfig9_SetImageCompositor_Proxy( + IVMRFilterConfig9* This, + IVMRImageCompositor9 *compositor); +void __RPC_STUB IVMRFilterConfig9_SetImageCompositor_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IVMRFilterConfig9_SetNumberOfStreams_Proxy( + IVMRFilterConfig9* This, + DWORD max); +void __RPC_STUB IVMRFilterConfig9_SetNumberOfStreams_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IVMRFilterConfig9_GetNumberOfStreams_Proxy( + IVMRFilterConfig9* This, + DWORD *max); +void __RPC_STUB IVMRFilterConfig9_GetNumberOfStreams_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IVMRFilterConfig9_SetRenderingPrefs_Proxy( + IVMRFilterConfig9* This, + DWORD renderflags); +void __RPC_STUB IVMRFilterConfig9_SetRenderingPrefs_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IVMRFilterConfig9_GetRenderingPrefs_Proxy( + IVMRFilterConfig9* This, + DWORD *renderflags); +void __RPC_STUB IVMRFilterConfig9_GetRenderingPrefs_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IVMRFilterConfig9_SetRenderingMode_Proxy( + IVMRFilterConfig9* This, + DWORD mode); +void __RPC_STUB IVMRFilterConfig9_SetRenderingMode_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IVMRFilterConfig9_GetRenderingMode_Proxy( + IVMRFilterConfig9* This, + DWORD *mode); +void __RPC_STUB IVMRFilterConfig9_GetRenderingMode_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); + +#endif /* __IVMRFilterConfig9_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IVMRAspectRatioControl9 interface + */ +#ifndef __IVMRAspectRatioControl9_INTERFACE_DEFINED__ +#define __IVMRAspectRatioControl9_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IVMRAspectRatioControl9, 0x00d96c29, 0xbbde, 0x4efc, 0x99,0x01, 0xbb,0x50,0x36,0x39,0x21,0x46); +#if defined(__cplusplus) && !defined(CINTERFACE) +interface IVMRAspectRatioControl9 : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE GetAspectRatioMode( + DWORD *mode) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetAspectRatioMode( + DWORD mode) = 0; + +}; +#else +typedef struct IVMRAspectRatioControl9Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IVMRAspectRatioControl9* This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IVMRAspectRatioControl9* This); + + ULONG (STDMETHODCALLTYPE *Release)( + IVMRAspectRatioControl9* This); + + /*** IVMRAspectRatioControl9 methods ***/ + HRESULT (STDMETHODCALLTYPE *GetAspectRatioMode)( + IVMRAspectRatioControl9* This, + DWORD *mode); + + HRESULT (STDMETHODCALLTYPE *SetAspectRatioMode)( + IVMRAspectRatioControl9* This, + DWORD mode); + + END_INTERFACE +} IVMRAspectRatioControl9Vtbl; +interface IVMRAspectRatioControl9 { + CONST_VTBL IVMRAspectRatioControl9Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +/*** IUnknown methods ***/ +#define IVMRAspectRatioControl9_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IVMRAspectRatioControl9_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IVMRAspectRatioControl9_Release(This) (This)->lpVtbl->Release(This) +/*** IVMRAspectRatioControl9 methods ***/ +#define IVMRAspectRatioControl9_GetAspectRatioMode(This,mode) (This)->lpVtbl->GetAspectRatioMode(This,mode) +#define IVMRAspectRatioControl9_SetAspectRatioMode(This,mode) (This)->lpVtbl->SetAspectRatioMode(This,mode) +#endif + +#endif + +HRESULT STDMETHODCALLTYPE IVMRAspectRatioControl9_GetAspectRatioMode_Proxy( + IVMRAspectRatioControl9* This, + DWORD *mode); +void __RPC_STUB IVMRAspectRatioControl9_GetAspectRatioMode_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IVMRAspectRatioControl9_SetAspectRatioMode_Proxy( + IVMRAspectRatioControl9* This, + DWORD mode); +void __RPC_STUB IVMRAspectRatioControl9_SetAspectRatioMode_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); + +#endif /* __IVMRAspectRatioControl9_INTERFACE_DEFINED__ */ + +typedef struct _VMR9MonitorInfo { + UINT uDevID; + RECT rcMonitor; + HMONITOR hMon; + DWORD dwFlags; + WCHAR szDevice[32]; + WCHAR szDescription[512]; + LARGE_INTEGER liDriverVersion; + DWORD dwVendorId; + DWORD dwDeviceId; + DWORD dwSubSysId; + DWORD dwRevision; +} VMR9MonitorInfo; +/***************************************************************************** + * IVMRMonitorConfig9 interface + */ +#ifndef __IVMRMonitorConfig9_INTERFACE_DEFINED__ +#define __IVMRMonitorConfig9_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IVMRMonitorConfig9, 0x46c2e457, 0x8ba0, 0x4eef, 0xb8,0x0b, 0x06,0x80,0xf0,0x97,0x87,0x49); +#if defined(__cplusplus) && !defined(CINTERFACE) +interface IVMRMonitorConfig9 : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE SetMonitor( + UINT uDev) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetMonitor( + UINT *uDev) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetDefaultMonitor( + UINT uDev) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetDefaultMonitor( + UINT *uDev) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetAvailableMonitors( + VMR9MonitorInfo *info, + DWORD arraysize, + DWORD *numdev) = 0; + +}; +#else +typedef struct IVMRMonitorConfig9Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IVMRMonitorConfig9* This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IVMRMonitorConfig9* This); + + ULONG (STDMETHODCALLTYPE *Release)( + IVMRMonitorConfig9* This); + + /*** IVMRMonitorConfig9 methods ***/ + HRESULT (STDMETHODCALLTYPE *SetMonitor)( + IVMRMonitorConfig9* This, + UINT uDev); + + HRESULT (STDMETHODCALLTYPE *GetMonitor)( + IVMRMonitorConfig9* This, + UINT *uDev); + + HRESULT (STDMETHODCALLTYPE *SetDefaultMonitor)( + IVMRMonitorConfig9* This, + UINT uDev); + + HRESULT (STDMETHODCALLTYPE *GetDefaultMonitor)( + IVMRMonitorConfig9* This, + UINT *uDev); + + HRESULT (STDMETHODCALLTYPE *GetAvailableMonitors)( + IVMRMonitorConfig9* This, + VMR9MonitorInfo *info, + DWORD arraysize, + DWORD *numdev); + + END_INTERFACE +} IVMRMonitorConfig9Vtbl; +interface IVMRMonitorConfig9 { + CONST_VTBL IVMRMonitorConfig9Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +/*** IUnknown methods ***/ +#define IVMRMonitorConfig9_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IVMRMonitorConfig9_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IVMRMonitorConfig9_Release(This) (This)->lpVtbl->Release(This) +/*** IVMRMonitorConfig9 methods ***/ +#define IVMRMonitorConfig9_SetMonitor(This,uDev) (This)->lpVtbl->SetMonitor(This,uDev) +#define IVMRMonitorConfig9_GetMonitor(This,uDev) (This)->lpVtbl->GetMonitor(This,uDev) +#define IVMRMonitorConfig9_SetDefaultMonitor(This,uDev) (This)->lpVtbl->SetDefaultMonitor(This,uDev) +#define IVMRMonitorConfig9_GetDefaultMonitor(This,uDev) (This)->lpVtbl->GetDefaultMonitor(This,uDev) +#define IVMRMonitorConfig9_GetAvailableMonitors(This,info,arraysize,numdev) (This)->lpVtbl->GetAvailableMonitors(This,info,arraysize,numdev) +#endif + +#endif + +HRESULT STDMETHODCALLTYPE IVMRMonitorConfig9_SetMonitor_Proxy( + IVMRMonitorConfig9* This, + UINT uDev); +void __RPC_STUB IVMRMonitorConfig9_SetMonitor_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IVMRMonitorConfig9_GetMonitor_Proxy( + IVMRMonitorConfig9* This, + UINT *uDev); +void __RPC_STUB IVMRMonitorConfig9_GetMonitor_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IVMRMonitorConfig9_SetDefaultMonitor_Proxy( + IVMRMonitorConfig9* This, + UINT uDev); +void __RPC_STUB IVMRMonitorConfig9_SetDefaultMonitor_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IVMRMonitorConfig9_GetDefaultMonitor_Proxy( + IVMRMonitorConfig9* This, + UINT *uDev); +void __RPC_STUB IVMRMonitorConfig9_GetDefaultMonitor_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IVMRMonitorConfig9_GetAvailableMonitors_Proxy( + IVMRMonitorConfig9* This, + VMR9MonitorInfo *info, + DWORD arraysize, + DWORD *numdev); +void __RPC_STUB IVMRMonitorConfig9_GetAvailableMonitors_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); + +#endif /* __IVMRMonitorConfig9_INTERFACE_DEFINED__ */ + +typedef enum _VMR9DeinterlacePrefs { + DeinterlacePref9_NextBest = 0x1, + DeinterlacePref9_BOB = 0x2, + DeinterlacePref9_Weave = 0x4, + DeinterlacePref9_Mask = 0x7 +} VMR9DeinterlacePrefs; +typedef enum _VMR9DeinterlaceTech { + DeinterlaceTech9_Unknown = 0, + DeinterlaceTech9_BOBLineReplicate = 0x1, + DeinterlaceTech9_BOBVerticalStretch = 0x2, + DeinterlaceTech9_MedianFiltering = 0x4, + DeinterlaceTech9_EdgeFiltering = 0x10, + DeinterlaceTech9_FieldAdaptive = 0x20, + DeinterlaceTech9_PixelAdaptive = 0x40, + DeinterlaceTech9_MotionVectorSteered = 0x80 +} VMR9DeinterlaceTech; +typedef struct _VMR9Frequency { + DWORD dwNumerator; + DWORD dwDenominator; +} VMR9Frequency; +typedef enum _VMR9_SampleFormat { + VMR9_SampleReserved = 1, + VMR9_SampleProgressiveFrame = 2, + VMR9_SampleFieldInterleavedEvenFirst = 3, + VMR9_SampleFieldInterleavedOddFirst = 4, + VMR9_SampleFieldSingleEven = 5, + VMR9_SampleFieldSingleOdd = 6 +} VMR9_SampleFormat; +typedef struct _VMR9VideoDesc { + DWORD dwSize; + DWORD dwSampleWidth; + DWORD dwSampleHeight; + VMR9_SampleFormat SampleFormat; + DWORD dwFourCC; + VMR9Frequency InputSampleFreq; + VMR9Frequency OutputFrameFreq; +} VMR9VideoDesc; +typedef struct _VMR9DeinterlaceCaps { + DWORD dwSize; + DWORD dwNumPreviousOutputFrames; + DWORD dwNumForwardRefSamples; + DWORD dwNumBackwardRefSamples; + VMR9DeinterlaceTech DeinterlaceTechnology; +} VMR9DeinterlaceCaps; +/***************************************************************************** + * IVMRDeinterlaceControl9 interface + */ +#ifndef __IVMRDeinterlaceControl9_INTERFACE_DEFINED__ +#define __IVMRDeinterlaceControl9_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IVMRDeinterlaceControl9, 0xa215fb8d, 0x13c2, 0x4f7f, 0x99,0x3c, 0x00,0x3d,0x62,0x71,0xa4,0x59); +#if defined(__cplusplus) && !defined(CINTERFACE) +interface IVMRDeinterlaceControl9 : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE GetNumberOfDeinterlaceModes( + VMR9VideoDesc *desc, + DWORD *nummodes, + GUID *modes) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetDeinterlaceModeCaps( + GUID *mode, + VMR9VideoDesc *desc, + VMR9DeinterlaceCaps *caps) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetDeinterlaceMode( + DWORD streamid, + GUID *mode) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetDeinterlaceMode( + DWORD streamid, + GUID *mode) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetDeinterlacePrefs( + DWORD *prefs) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetDeinterlacePrefs( + DWORD prefs) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetActualDeinterlaceMode( + DWORD streamid, + GUID *mode) = 0; + +}; +#else +typedef struct IVMRDeinterlaceControl9Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IVMRDeinterlaceControl9* This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IVMRDeinterlaceControl9* This); + + ULONG (STDMETHODCALLTYPE *Release)( + IVMRDeinterlaceControl9* This); + + /*** IVMRDeinterlaceControl9 methods ***/ + HRESULT (STDMETHODCALLTYPE *GetNumberOfDeinterlaceModes)( + IVMRDeinterlaceControl9* This, + VMR9VideoDesc *desc, + DWORD *nummodes, + GUID *modes); + + HRESULT (STDMETHODCALLTYPE *GetDeinterlaceModeCaps)( + IVMRDeinterlaceControl9* This, + GUID *mode, + VMR9VideoDesc *desc, + VMR9DeinterlaceCaps *caps); + + HRESULT (STDMETHODCALLTYPE *GetDeinterlaceMode)( + IVMRDeinterlaceControl9* This, + DWORD streamid, + GUID *mode); + + HRESULT (STDMETHODCALLTYPE *SetDeinterlaceMode)( + IVMRDeinterlaceControl9* This, + DWORD streamid, + GUID *mode); + + HRESULT (STDMETHODCALLTYPE *GetDeinterlacePrefs)( + IVMRDeinterlaceControl9* This, + DWORD *prefs); + + HRESULT (STDMETHODCALLTYPE *SetDeinterlacePrefs)( + IVMRDeinterlaceControl9* This, + DWORD prefs); + + HRESULT (STDMETHODCALLTYPE *GetActualDeinterlaceMode)( + IVMRDeinterlaceControl9* This, + DWORD streamid, + GUID *mode); + + END_INTERFACE +} IVMRDeinterlaceControl9Vtbl; +interface IVMRDeinterlaceControl9 { + CONST_VTBL IVMRDeinterlaceControl9Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +/*** IUnknown methods ***/ +#define IVMRDeinterlaceControl9_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IVMRDeinterlaceControl9_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IVMRDeinterlaceControl9_Release(This) (This)->lpVtbl->Release(This) +/*** IVMRDeinterlaceControl9 methods ***/ +#define IVMRDeinterlaceControl9_GetNumberOfDeinterlaceModes(This,desc,nummodes,modes) (This)->lpVtbl->GetNumberOfDeinterlaceModes(This,desc,nummodes,modes) +#define IVMRDeinterlaceControl9_GetDeinterlaceModeCaps(This,mode,desc,caps) (This)->lpVtbl->GetDeinterlaceModeCaps(This,mode,desc,caps) +#define IVMRDeinterlaceControl9_GetDeinterlaceMode(This,streamid,mode) (This)->lpVtbl->GetDeinterlaceMode(This,streamid,mode) +#define IVMRDeinterlaceControl9_SetDeinterlaceMode(This,streamid,mode) (This)->lpVtbl->SetDeinterlaceMode(This,streamid,mode) +#define IVMRDeinterlaceControl9_GetDeinterlacePrefs(This,prefs) (This)->lpVtbl->GetDeinterlacePrefs(This,prefs) +#define IVMRDeinterlaceControl9_SetDeinterlacePrefs(This,prefs) (This)->lpVtbl->SetDeinterlacePrefs(This,prefs) +#define IVMRDeinterlaceControl9_GetActualDeinterlaceMode(This,streamid,mode) (This)->lpVtbl->GetActualDeinterlaceMode(This,streamid,mode) +#endif + +#endif + +HRESULT STDMETHODCALLTYPE IVMRDeinterlaceControl9_GetNumberOfDeinterlaceModes_Proxy( + IVMRDeinterlaceControl9* This, + VMR9VideoDesc *desc, + DWORD *nummodes, + GUID *modes); +void __RPC_STUB IVMRDeinterlaceControl9_GetNumberOfDeinterlaceModes_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IVMRDeinterlaceControl9_GetDeinterlaceModeCaps_Proxy( + IVMRDeinterlaceControl9* This, + GUID *mode, + VMR9VideoDesc *desc, + VMR9DeinterlaceCaps *caps); +void __RPC_STUB IVMRDeinterlaceControl9_GetDeinterlaceModeCaps_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IVMRDeinterlaceControl9_GetDeinterlaceMode_Proxy( + IVMRDeinterlaceControl9* This, + DWORD streamid, + GUID *mode); +void __RPC_STUB IVMRDeinterlaceControl9_GetDeinterlaceMode_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IVMRDeinterlaceControl9_SetDeinterlaceMode_Proxy( + IVMRDeinterlaceControl9* This, + DWORD streamid, + GUID *mode); +void __RPC_STUB IVMRDeinterlaceControl9_SetDeinterlaceMode_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IVMRDeinterlaceControl9_GetDeinterlacePrefs_Proxy( + IVMRDeinterlaceControl9* This, + DWORD *prefs); +void __RPC_STUB IVMRDeinterlaceControl9_GetDeinterlacePrefs_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IVMRDeinterlaceControl9_SetDeinterlacePrefs_Proxy( + IVMRDeinterlaceControl9* This, + DWORD prefs); +void __RPC_STUB IVMRDeinterlaceControl9_SetDeinterlacePrefs_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IVMRDeinterlaceControl9_GetActualDeinterlaceMode_Proxy( + IVMRDeinterlaceControl9* This, + DWORD streamid, + GUID *mode); +void __RPC_STUB IVMRDeinterlaceControl9_GetActualDeinterlaceMode_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); + +#endif /* __IVMRDeinterlaceControl9_INTERFACE_DEFINED__ */ + +typedef struct _VMR9VideoStreamInfo { + IDirect3DSurface9 *pddsVideoSurface; + DWORD dwWidth; + DWORD dwHeight; + DWORD dwStrmID; + FLOAT fAlpha; + VMR9NormalizedRect rNormal; + REFERENCE_TIME rtStart; + REFERENCE_TIME rtEnd; + VMR9_SampleFormat SampleFormat; +} VMR9VideoStreamInfo; +/***************************************************************************** + * IVMRImageCompositor9 interface + */ +#ifndef __IVMRImageCompositor9_INTERFACE_DEFINED__ +#define __IVMRImageCompositor9_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IVMRImageCompositor9, 0x4a5c89eb, 0xdf51, 0x4654, 0xac,0x2a, 0xe4,0x8e,0x02,0xbb,0xab,0xf6); +#if defined(__cplusplus) && !defined(CINTERFACE) +interface IVMRImageCompositor9 : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE InitCompositionDevice( + IUnknown *d3ddev) = 0; + + virtual HRESULT STDMETHODCALLTYPE TermCompositionDevice( + IUnknown *d3ddev) = 0; + + virtual HRESULT STDMETHODCALLTYPE CompositeImage( + IUnknown *d3ddev, + IDirect3DSurface9 *d3dtarget, + AM_MEDIA_TYPE *mttarget, + REFERENCE_TIME start, + REFERENCE_TIME stop, + D3DCOLOR back, + VMR9VideoStreamInfo *info, + UINT streams) = 0; + +}; +#else +typedef struct IVMRImageCompositor9Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IVMRImageCompositor9* This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IVMRImageCompositor9* This); + + ULONG (STDMETHODCALLTYPE *Release)( + IVMRImageCompositor9* This); + + /*** IVMRImageCompositor9 methods ***/ + HRESULT (STDMETHODCALLTYPE *InitCompositionDevice)( + IVMRImageCompositor9* This, + IUnknown *d3ddev); + + HRESULT (STDMETHODCALLTYPE *TermCompositionDevice)( + IVMRImageCompositor9* This, + IUnknown *d3ddev); + + HRESULT (STDMETHODCALLTYPE *CompositeImage)( + IVMRImageCompositor9* This, + IUnknown *d3ddev, + IDirect3DSurface9 *d3dtarget, + AM_MEDIA_TYPE *mttarget, + REFERENCE_TIME start, + REFERENCE_TIME stop, + D3DCOLOR back, + VMR9VideoStreamInfo *info, + UINT streams); + + END_INTERFACE +} IVMRImageCompositor9Vtbl; +interface IVMRImageCompositor9 { + CONST_VTBL IVMRImageCompositor9Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +/*** IUnknown methods ***/ +#define IVMRImageCompositor9_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IVMRImageCompositor9_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IVMRImageCompositor9_Release(This) (This)->lpVtbl->Release(This) +/*** IVMRImageCompositor9 methods ***/ +#define IVMRImageCompositor9_InitCompositionDevice(This,d3ddev) (This)->lpVtbl->InitCompositionDevice(This,d3ddev) +#define IVMRImageCompositor9_TermCompositionDevice(This,d3ddev) (This)->lpVtbl->TermCompositionDevice(This,d3ddev) +#define IVMRImageCompositor9_CompositeImage(This,d3ddev,d3dtarget,mttarget,start,stop,back,info,streams) (This)->lpVtbl->CompositeImage(This,d3ddev,d3dtarget,mttarget,start,stop,back,info,streams) +#endif + +#endif + +HRESULT STDMETHODCALLTYPE IVMRImageCompositor9_InitCompositionDevice_Proxy( + IVMRImageCompositor9* This, + IUnknown *d3ddev); +void __RPC_STUB IVMRImageCompositor9_InitCompositionDevice_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IVMRImageCompositor9_TermCompositionDevice_Proxy( + IVMRImageCompositor9* This, + IUnknown *d3ddev); +void __RPC_STUB IVMRImageCompositor9_TermCompositionDevice_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IVMRImageCompositor9_CompositeImage_Proxy( + IVMRImageCompositor9* This, + IUnknown *d3ddev, + IDirect3DSurface9 *d3dtarget, + AM_MEDIA_TYPE *mttarget, + REFERENCE_TIME start, + REFERENCE_TIME stop, + D3DCOLOR back, + VMR9VideoStreamInfo *info, + UINT streams); +void __RPC_STUB IVMRImageCompositor9_CompositeImage_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); + +#endif /* __IVMRImageCompositor9_INTERFACE_DEFINED__ */ + +/* Begin additional prototypes for all interfaces */ + + +/* End additional prototypes */ + +#ifdef __cplusplus +} +#endif + +#endif /* __WIDL_VMR9_H */ diff --git a/mingw-w64-headers/direct-x/include/vmr9.idl b/mingw-w64-headers/direct-x/include/vmr9.idl new file mode 100644 index 000000000..bb3681cd2 --- /dev/null +++ b/mingw-w64-headers/direct-x/include/vmr9.idl @@ -0,0 +1,524 @@ +/* + * Copyright 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 + */ + +import "unknwn.idl"; + +cpp_quote("#if 0") +interface IDirect3DSurface9; +interface IDirect3DDevice9; +typedef LONGLONG REFERENCE_TIME; +typedef DWORD D3DFORMAT; +typedef DWORD D3DPOOL; +typedef HANDLE HMONITOR; +typedef struct { char dummy; } AM_MEDIA_TYPE; +typedef struct { char dummy; } D3DCOLOR; +cpp_quote("#endif") + +interface IVMRSurface9; +interface IVMRSurfaceAllocator9; +interface IVMRSurfaceAllocatorEx9; +interface IVMRSurfaceAllocatorNotify9; +interface IVMRImagePresenter9; +interface IVMRImagePresenterConfig9; +interface IVMRMonitorConfig9; +interface IVMRWindowlessControl9; +interface IVMRMixerControl9; +interface IVMRImageCompositor9; +interface IVMRMixerBitmap9; +interface IVMRFilterConfig9; +interface IVMRAspectRatioControl9; +interface IVMRVideoStreamControl9; + +typedef enum _VMR9PresentationFlags +{ + VMR9Sample_SyncPoint = 0x1, + VMR9Sample_Preroll = 0x2, + VMR9Sample_Discontinuity = 0x4, + VMR9Sample_TimeValid = 0x8, + VMR9Sample_SrcDstRectsValid = 0x10 +} VMR9PresentationFlags; + +typedef struct _VMR9PresentationInfo +{ + DWORD dwFlags; /* Flags defined above */ + IDirect3DSurface9 *lpSurf; + REFERENCE_TIME rtStart; + REFERENCE_TIME rtEnd; + SIZE szAspectRatio; + RECT rcSrc; + RECT rcDst; + DWORD dwReserved1; + DWORD dwReserved2; +} VMR9PresentationInfo; + +[ + local, + object, + uuid(69188c61-12a3-40f0-8ffc-342e7b433fd7), + helpstring("IVMRImagePresenter9 interface"), + pointer_default(unique) +] +interface IVMRImagePresenter9 : IUnknown +{ + HRESULT StartPresenting([in] DWORD_PTR id); + HRESULT StopPresenting([in] DWORD_PTR id); + HRESULT PresentImage([in] DWORD_PTR id, [in] VMR9PresentationInfo *info); +}; + +typedef enum _VMR9SurfaceAllocationFlags +{ + VMR9AllocFlag_3DRenderTarget = 0x1, + VMR9AllocFlag_DXVATarget = 0x2, + VMR9AllocFlag_TextureSurface = 0x4, + VMR9AllocFlag_OffscreenSurface = 0x8, + VMR9AllocFlag_RGBDynamicSwitch = 0x10, + VMR9AllocFlag_UsageReserved = 0xe0, + VMR9AllocFlag_UsageMask = 0xff, +} VMR9SurfaceAllocationFlags; + +typedef struct _VMR9AllocationInfo +{ + DWORD dwFlags; /* Flags defined above */ + DWORD dwWidth; + DWORD dwHeight; + D3DFORMAT Format; + D3DPOOL Pool; + DWORD MinBuffers; + SIZE szAspectRatio; + SIZE szNativeSize; +} VMR9AllocationInfo; + +[ + local, + object, + uuid(8d5148ea-3f5d-46cf-9df1-d1b896eedb1f), + helpstring("IVMRSurfaceAllocator9 interface"), + pointer_default(unique) +] +interface IVMRSurfaceAllocator9 : IUnknown +{ + HRESULT InitializeDevice([in] DWORD_PTR id, [in] VMR9AllocationInfo *allocinfo, [in, out] DWORD *numbuffers); + HRESULT TerminateDevice([in] DWORD_PTR id); + HRESULT GetSurface([in] DWORD_PTR id, [in] DWORD surfaceindex, [in] DWORD flags, [out] IDirect3DSurface9 **surface); + HRESULT AdviseNotify([in] IVMRSurfaceAllocatorNotify9 *allocnotify); +}; + +[ + local, + object, + uuid(6de9a68a-a928-4522-bf57-655ae3866456), + helpstring("IVMRSurfaceAllocatorEx9 interface"), + pointer_default(unique) +] +interface IVMRSurfaceAllocatorEx9 : IVMRSurfaceAllocator9 +{ + HRESULT GetSurfaceEx([in] DWORD_PTR id, [in] DWORD surfaceindex, [in] DWORD flags, [out] IDirect3DSurface9 **surface, [out] RECT *dest); +}; + +[ + local, + object, + uuid(dca3f5df-bb3a-4d03-bd81-84614bfbfa0c), + helpstring("IVMRSurfaceAllocatorNotify9 interface"), + pointer_default(unique) +] +interface IVMRSurfaceAllocatorNotify9 : IUnknown +{ + HRESULT AdviseSurfaceAllocator([in] DWORD_PTR id, [in] IVMRSurfaceAllocator9 *alloc); + HRESULT SetD3DDevice([in] IDirect3DDevice9 *device, [in] HMONITOR monitor); + HRESULT ChangeD3DDevice([in] IDirect3DDevice9 *device, [in] HMONITOR monitor); + HRESULT AllocateSurfaceHelper([in] VMR9AllocationInfo *allocinfo, [in, out] DWORD *numbuffers, [out] IDirect3DSurface9 **surface); + HRESULT NotifyEvent([in] LONG code, [in] LONG_PTR param1, [in] LONG_PTR param2); +}; + +typedef enum _VMR9AspectRatioMode +{ + VMR9ARMode_None, + VMR9ARMode_LetterBox +} VMR9AspectRatioMode; + +[ + local, + object, + uuid(8f537d09-f85e-4414-b23b-502e54c79927), + helpstring("IVMRWindowlessControl interface"), + pointer_default(unique) +] +interface IVMRWindowlessControl9 : IUnknown +{ + HRESULT GetNativeVideoSize([out] LONG *width, [out] LONG *height, [out] LONG *arwidth, [out] LONG *arheight); + HRESULT GetMinIdealVideoSize([out] LONG *width, [out] LONG *height); + HRESULT GetMaxIdealVideoSize([out] LONG *width, [out] LONG *height); + HRESULT SetVideoPosition([in] const RECT *source, [in] const RECT *dest); + HRESULT GetVideoPosition([out] RECT *source, [out] RECT *dest); + HRESULT GetAspectRatioMode([out] DWORD *mode); + HRESULT SetAspectRatioMode([in] DWORD mode); + HRESULT SetVideoClippingWindow([in] HWND hwnd); + HRESULT RepaintVideo([in] HWND hwnd, [in] HDC hdc); + HRESULT DisplayModeChanged(); + HRESULT GetCurrentImage([out] BYTE **dib); + HRESULT SetBorderColor([in] COLORREF color); + HRESULT GetBorderColor([out] COLORREF *color); +}; + +typedef enum _VMR9MixerPrefs +{ + /* Decimation */ + MixerPref9_NoDecimation = 0x1, + MixerPref9_DecimateOutput = 0x2, + MixerPref9_ARAdjustXorY = 0x4, + MixerPref9_NonSquareMixing = 0x8, + MixerPref9_DecimateMask = 0xf, + + /* Filtering */ + MixerPref9_BiLinearFiltering = 0x10, + MixerPref9_PointFiltering = 0x20, + MixerPref9_AnisotropicFiltering = 0x40, + MixerPref9_PyramidalQuadFiltering = 0x80, + MixerPref9_GaussianQuadFiltering = 0x100, + MixerPref9_FilteringReserved = 0xe00, + MixerPref9_FilteringMask = 0xff0, + + /* Render target */ + MixerPref9_RenderTargetRGB = 0x1000, + MixerPref9_RenderTargetYUV = 0x2000, + MixerPref9_RenderTargetReserved = 0xfc000, + + MixerPref9_DynamicSwitchToBOB = 0x100000, + MixerPref9_DynamicDecimateBy2 = 0x200000, + MixerPref9_DynamicReserved = 0xc00000, + MixerPref9_DynamicMask = 0xf00000, +} VMR9MixerPrefs; + +typedef struct _VMR9NormalizedRect +{ + FLOAT left; + FLOAT top; + FLOAT right; + FLOAT bottom; +} VMR9NormalizedRect; + +typedef enum _VMR9ProcAmpControlFlags +{ + ProcAmpControl9_Brightness = 0x1, + ProcAmpControl9_Contrast = 0x2, + ProcAmpControl9_Hue = 0x4, + ProcAmpControl9_Saturation = 0x8, + ProcAmpControl9_Mask = 0xf +} VMR9ProcAmpControlFlags; + +typedef struct _VMR9ProcAmpControl +{ + DWORD dwSize; + DWORD dwFlags; + FLOAT Brightness; + FLOAT Contrast; + FLOAT Hue; + FLOAT Saturation; +} VMR9ProcAmpControl; + +typedef struct _VMR9ProcAmpControlRange +{ + DWORD dwSize; + VMR9ProcAmpControlFlags dwProperty; + FLOAT MinValue; + FLOAT MaxValue; + FLOAT DefaultValue; + FLOAT StepSize; +} VMR9ProcAmpControlRange; + +[ + local, + object, + uuid(1a777eaa-47c8-4930-b2c9-8fee1c1b0f3b), + helpstring("IVMRMixerControl9 interface"), + pointer_default(unique) +] +interface IVMRMixerControl9 : IUnknown +{ + HRESULT SetAlpha([in] DWORD streamid, [in] FLOAT alpha); + HRESULT GetAlpha([in] DWORD streamid, [out] FLOAT *alpha); + HRESULT SetZOrder([in] DWORD streamid, [in] DWORD zorder); + HRESULT GetZOrder([in] DWORD streamid, [out] DWORD *zorder); + HRESULT SetOutputRect([in] DWORD streamid, [in] const VMR9NormalizedRect *rect); + HRESULT GetOutputRect([in] DWORD streamid, [out] VMR9NormalizedRect *rect); + HRESULT SetBackgroundClr([in] COLORREF back); + HRESULT GetBackgroundClr([out] COLORREF *back); + HRESULT SetMixingPrefs([in] DWORD mixingprefs); + HRESULT GetMixingPrefs([out] DWORD *mixingprefs); + HRESULT SetProcAmpControl([in] DWORD streamid, [in] VMR9ProcAmpControl *control); + HRESULT GetProcAmpControl([in] DWORD streamid, [in, out] VMR9ProcAmpControl *control); + HRESULT GetProcAmpControlRange([in] DWORD streamid, [in, out] VMR9ProcAmpControlRange *controlrange); +}; + +typedef struct _VMR9AlphaBitmap +{ + DWORD dwFlags; + HDC hdc; + IDirect3DSurface9 *pDDS; + RECT rSrc; + VMR9NormalizedRect *rDest; + FLOAT fAlpha; + COLORREF clrSrcKey; + DWORD dwFilterMode; +} VMR9AlphaBitmap; + +typedef enum _VMR9AlphaBitmapFlags +{ + VMR9AlphaBitmap_Disable = 0x1, + VMR9AlphaBitmap_hDC = 0x2, + VMR9AlphaBitmap_EntireDDS = 0x4, + VMR9AlphaBitmap_SrcColorKey = 0x8, + VMR9AlphaBitmap_SrcRect = 0x10, + VMR9AlphaBitmap_FilterMode = 0x20 +} VMR9AlphaBitmapFlags; + +[ + local, + object, + uuid(ced175e5-1935-4820-81bd-ff6ad00c9108), + helpstring("IVMRMixerBitmap interface"), + pointer_default(unique) +] +interface IVMRMixerBitmap9 : IUnknown +{ + HRESULT SetAlphaBitmap([in] const VMR9AlphaBitmap *bitmap); + HRESULT UpdateAlphaBitmapParameters([in] const VMR9AlphaBitmap *bitmap); + HRESULT GetAlphaBitmapParameters([out] VMR9AlphaBitmap *bitmap); +}; + +[ + local, + object, + uuid(dfc581a1-6e1f-4c3a-8d0a-5e9792ea2afc), + helpstring("IVMRSurface interface"), + pointer_default(unique) +] +interface IVMRSurface9 : IUnknown +{ + HRESULT IsSurfaceLocked(); + HRESULT LockSurface([out] BYTE **surface); + HRESULT UnlockSurface(); + HRESULT GetSurface([out] IDirect3DSurface9 **surface); +}; + +typedef enum _VMR9RenderPrefs +{ + RenderPrefs9_DoNotRenderBorder = 0x1, + RenderPrefs9_Mask = 0x1 +} VMR9RenderPrefs; + +[ + local, + object, + uuid(45c15cab-6e22-420a-8043-ae1f0ac02c7d), + helpstring("IVMRImagePresenterConfig9 interface"), + pointer_default(unique) +] +interface IVMRImagePresenterConfig9 : IUnknown +{ + HRESULT SetRenderingPrefs([in] DWORD renderflags); + HRESULT GetRenderingPrefs([out] DWORD *renderflags); +}; + +[ + local, + object, + uuid(d0cfe38b-93e7-4772-8957-0400c49a4485), + helpstring("IVMRMixerStreamConfig interface"), + pointer_default(unique) +] +interface IVMRVideoStreamControl9: IUnknown +{ + HRESULT SetStreamActiveState([in] BOOL active); + HRESULT GetStreamActiveState([out] BOOL *active); +}; + +typedef enum _VMR9Mode +{ + VMR9Mode_Windowed = 0x1, + VMR9Mode_Windowless = 0x2, + VMR9Mode_Renderless = 0x4, + VMR9Mode_Mask = 0x7 +} VMR9Mode; + +[ + local, + object, + uuid(5a804648-4f66-4867-9c43-4f5c822cf1b8), + helpstring("IVMRFilterConfig9 interface"), + pointer_default(unique) +] +interface IVMRFilterConfig9 : IUnknown +{ + HRESULT SetImageCompositor([in] IVMRImageCompositor9 *compositor); + HRESULT SetNumberOfStreams([in] DWORD max); + HRESULT GetNumberOfStreams([out] DWORD *max); + HRESULT SetRenderingPrefs([in] DWORD renderflags); + HRESULT GetRenderingPrefs([out] DWORD *renderflags); + HRESULT SetRenderingMode([in] DWORD mode); + HRESULT GetRenderingMode([out] DWORD *mode); +}; + +[ + local, + object, + uuid(00d96c29-bbde-4efc-9901-bb5036392146), + helpstring("IVMRAspectRatioControl9 interface"), + pointer_default(unique) +] +interface IVMRAspectRatioControl9 : IUnknown +{ + HRESULT GetAspectRatioMode([out] DWORD *mode); + HRESULT SetAspectRatioMode([in] DWORD mode); +} + +#define VMR9DEVICENAMELEN 32 +#define VMR9DEVICEDESCRIPTIONLEN 512 + +typedef struct _VMR9MonitorInfo +{ + UINT uDevID; + RECT rcMonitor; + HMONITOR hMon; + DWORD dwFlags; + WCHAR szDevice[VMR9DEVICENAMELEN]; + WCHAR szDescription[VMR9DEVICEDESCRIPTIONLEN]; + LARGE_INTEGER liDriverVersion; + DWORD dwVendorId; + DWORD dwDeviceId; + DWORD dwSubSysId; + DWORD dwRevision; +} VMR9MonitorInfo; + +[ + local, + object, + uuid(46c2e457-8ba0-4eef-b80b-0680f0978749), + helpstring("IVMRMonitorConfig9 interface"), + pointer_default(unique) +] +interface IVMRMonitorConfig9 : IUnknown +{ + HRESULT SetMonitor([in] UINT uDev); + HRESULT GetMonitor([out] UINT *uDev); + HRESULT SetDefaultMonitor([in] UINT uDev); + HRESULT GetDefaultMonitor([out] UINT *uDev); + HRESULT GetAvailableMonitors([out, size_is(arraysize)] VMR9MonitorInfo *info, [in] DWORD arraysize, [out] DWORD *numdev); +}; + +typedef enum _VMR9DeinterlacePrefs +{ + DeinterlacePref9_NextBest = 0x1, + DeinterlacePref9_BOB = 0x2, + DeinterlacePref9_Weave = 0x4, + DeinterlacePref9_Mask = 0x7 +} VMR9DeinterlacePrefs; + +typedef enum _VMR9DeinterlaceTech +{ + DeinterlaceTech9_Unknown = 0, + DeinterlaceTech9_BOBLineReplicate = 0x1, + DeinterlaceTech9_BOBVerticalStretch = 0x2, + DeinterlaceTech9_MedianFiltering = 0x4, + DeinterlaceTech9_EdgeFiltering = 0x10, + DeinterlaceTech9_FieldAdaptive = 0x20, + DeinterlaceTech9_PixelAdaptive = 0x40, + DeinterlaceTech9_MotionVectorSteered = 0x80 +} VMR9DeinterlaceTech; + +typedef struct _VMR9Frequency +{ + DWORD dwNumerator; + DWORD dwDenominator; +} VMR9Frequency; + +typedef enum _VMR9_SampleFormat +{ + VMR9_SampleReserved = 1, + VMR9_SampleProgressiveFrame = 2, + VMR9_SampleFieldInterleavedEvenFirst = 3, + VMR9_SampleFieldInterleavedOddFirst = 4, + VMR9_SampleFieldSingleEven = 5, + VMR9_SampleFieldSingleOdd = 6, +} VMR9_SampleFormat; + +typedef struct _VMR9VideoDesc +{ + DWORD dwSize; + DWORD dwSampleWidth; + DWORD dwSampleHeight; + VMR9_SampleFormat SampleFormat; + DWORD dwFourCC; + VMR9Frequency InputSampleFreq; + VMR9Frequency OutputFrameFreq; +} VMR9VideoDesc; + +typedef struct _VMR9DeinterlaceCaps { + DWORD dwSize; + DWORD dwNumPreviousOutputFrames; + DWORD dwNumForwardRefSamples; + DWORD dwNumBackwardRefSamples; + VMR9DeinterlaceTech DeinterlaceTechnology; +} VMR9DeinterlaceCaps; + +[ + local, + object, + uuid(a215fb8d-13c2-4f7f-993c-003d6271a459), + helpstring("IVMRDeinterlaceControl9 interface"), + pointer_default(unique) +] +interface IVMRDeinterlaceControl9 : IUnknown +{ + HRESULT GetNumberOfDeinterlaceModes([in] VMR9VideoDesc *desc, [in, out] DWORD *nummodes, [out] GUID *modes); + HRESULT GetDeinterlaceModeCaps([in] GUID *mode, [in] VMR9VideoDesc *desc, [out] VMR9DeinterlaceCaps *caps); + HRESULT GetDeinterlaceMode([in] DWORD streamid, [out] GUID *mode); + HRESULT SetDeinterlaceMode([in] DWORD streamid, [in] GUID *mode); + HRESULT GetDeinterlacePrefs([out] DWORD *prefs); + HRESULT SetDeinterlacePrefs([in] DWORD prefs); + HRESULT GetActualDeinterlaceMode([in] DWORD streamid, [out] GUID *mode); +}; + +typedef struct _VMR9VideoStreamInfo { + IDirect3DSurface9 *pddsVideoSurface; + DWORD dwWidth; + DWORD dwHeight; + DWORD dwStrmID; + FLOAT fAlpha; + VMR9NormalizedRect rNormal; + REFERENCE_TIME rtStart; + REFERENCE_TIME rtEnd; + VMR9_SampleFormat SampleFormat; +} VMR9VideoStreamInfo; + +[ + local, + object, + uuid(4a5c89eb-df51-4654-ac2a-e48e02bbabf6), + helpstring("IVMRImageCompositor9 interface"), + pointer_default(unique) +] +interface IVMRImageCompositor9 : IUnknown +{ + HRESULT InitCompositionDevice([in] IUnknown *d3ddev); + HRESULT TermCompositionDevice([in] IUnknown *d3ddev); + HRESULT CompositeImage([in] IUnknown *d3ddev, [in] IDirect3DSurface9 *d3dtarget, [in] AM_MEDIA_TYPE *mttarget, + [in] REFERENCE_TIME start, [in] REFERENCE_TIME stop, D3DCOLOR back, + [in] VMR9VideoStreamInfo *info, [in] UINT streams); +};