/*** Autogenerated by WIDL 0.1 from strmif.idl - Do not edit ***/ #include #include #ifndef __WIDL_STRMIF_H #define __WIDL_STRMIF_H #ifdef __cplusplus extern "C" { #endif #include #include #define CDEF_CLASS_DEFAULT 0x0001 #define CDEF_BYPASS_CLASS_MANAGER 0x0002 #define CDEF_CLASS_LEGACY 0x0004 #define CDEF_MERIT_ABOVE_DO_NOT_USE 0x0008 #ifndef __ICreateDevEnum_FWD_DEFINED__ #define __ICreateDevEnum_FWD_DEFINED__ typedef struct ICreateDevEnum ICreateDevEnum; #endif /***************************************************************************** * ICreateDevEnum interface */ #ifndef __ICreateDevEnum_INTERFACE_DEFINED__ #define __ICreateDevEnum_INTERFACE_DEFINED__ DEFINE_GUID(IID_ICreateDevEnum, 0x29840822, 0x5b84, 0x11d0, 0xbd,0x3b, 0x00,0xa0,0xc9,0x11,0xce,0x86); #if defined(__cplusplus) && !defined(CINTERFACE) struct ICreateDevEnum : public IUnknown { virtual HRESULT STDMETHODCALLTYPE CreateClassEnumerator( REFCLSID clsidDeviceClass, IEnumMoniker** ppEnumMoniker, DWORD dwFlags) = 0; }; #else typedef struct ICreateDevEnumVtbl ICreateDevEnumVtbl; struct ICreateDevEnum { const ICreateDevEnumVtbl* lpVtbl; }; struct ICreateDevEnumVtbl { ICOM_MSVTABLE_COMPAT_FIELDS /*** IUnknown methods ***/ HRESULT (STDMETHODCALLTYPE *QueryInterface)( ICreateDevEnum* This, REFIID riid, void** ppvObject); ULONG (STDMETHODCALLTYPE *AddRef)( ICreateDevEnum* This); ULONG (STDMETHODCALLTYPE *Release)( ICreateDevEnum* This); /*** ICreateDevEnum methods ***/ HRESULT (STDMETHODCALLTYPE *CreateClassEnumerator)( ICreateDevEnum* This, REFCLSID clsidDeviceClass, IEnumMoniker** ppEnumMoniker, DWORD dwFlags); }; /*** IUnknown methods ***/ #define ICreateDevEnum_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) #define ICreateDevEnum_AddRef(p) (p)->lpVtbl->AddRef(p) #define ICreateDevEnum_Release(p) (p)->lpVtbl->Release(p) /*** ICreateDevEnum methods ***/ #define ICreateDevEnum_CreateClassEnumerator(p,a,b,c) (p)->lpVtbl->CreateClassEnumerator(p,a,b,c) #endif #define ICreateDevEnum_METHODS \ ICOM_MSVTABLE_COMPAT_FIELDS \ /*** IUnknown methods ***/ \ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \ STDMETHOD_(ULONG,AddRef)(THIS) PURE; \ STDMETHOD_(ULONG,Release)(THIS) PURE; \ /*** ICreateDevEnum methods ***/ \ STDMETHOD_(HRESULT,CreateClassEnumerator)(THIS_ REFCLSID clsidDeviceClass, IEnumMoniker** ppEnumMoniker, DWORD dwFlags) PURE; HRESULT CALLBACK ICreateDevEnum_CreateClassEnumerator_Proxy( ICreateDevEnum* This, REFCLSID clsidDeviceClass, IEnumMoniker** ppEnumMoniker, DWORD dwFlags); void __RPC_STUB ICreateDevEnum_CreateClassEnumerator_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); #endif /* __ICreateDevEnum_INTERFACE_DEFINED__ */ #define CHARS_IN_GUID 39 #undef GetTimeFormat typedef struct _AMMediaType { GUID majortype; GUID subtype; BOOL bFixedSizeSamples; BOOL bTemporalCompression; ULONG lSampleSize; GUID formattype; IUnknown *pUnk; ULONG cbFormat; BYTE *pbFormat; } AM_MEDIA_TYPE; typedef enum _PinDirection { PINDIR_INPUT, PINDIR_OUTPUT } PIN_DIRECTION; #define MAX_PIN_NAME 128 #define MAX_FILTER_NAME 128 typedef LONGLONG REFERENCE_TIME; typedef double REFTIME; typedef DWORD_PTR HSEMAPHORE; typedef DWORD_PTR HEVENT; typedef struct _AllocatorProperties { long cBuffers; long cbBuffer; long cbAlign; long cbPrefix; } ALLOCATOR_PROPERTIES; #ifndef __IAMovieSetup_FWD_DEFINED__ #define __IAMovieSetup_FWD_DEFINED__ typedef struct IAMovieSetup IAMovieSetup; #endif #ifndef __IEnumFilters_FWD_DEFINED__ #define __IEnumFilters_FWD_DEFINED__ typedef struct IEnumFilters IEnumFilters; #endif #ifndef __IEnumMediaTypes_FWD_DEFINED__ #define __IEnumMediaTypes_FWD_DEFINED__ typedef struct IEnumMediaTypes IEnumMediaTypes; #endif #ifndef __IEnumPins_FWD_DEFINED__ #define __IEnumPins_FWD_DEFINED__ typedef struct IEnumPins IEnumPins; #endif #ifndef __IBaseFilter_FWD_DEFINED__ #define __IBaseFilter_FWD_DEFINED__ typedef struct IBaseFilter IBaseFilter; #endif #ifndef __IFilterGraph_FWD_DEFINED__ #define __IFilterGraph_FWD_DEFINED__ typedef struct IFilterGraph IFilterGraph; #endif #ifndef __IMediaFilter_FWD_DEFINED__ #define __IMediaFilter_FWD_DEFINED__ typedef struct IMediaFilter IMediaFilter; #endif #ifndef __IMediaSample_FWD_DEFINED__ #define __IMediaSample_FWD_DEFINED__ typedef struct IMediaSample IMediaSample; #endif #ifndef __IMemAllocator_FWD_DEFINED__ #define __IMemAllocator_FWD_DEFINED__ typedef struct IMemAllocator IMemAllocator; #endif #ifndef __IMemAllocatorCallbackTemp_FWD_DEFINED__ #define __IMemAllocatorCallbackTemp_FWD_DEFINED__ typedef struct IMemAllocatorCallbackTemp IMemAllocatorCallbackTemp; #endif #ifndef __IMemAllocatorNotifyCallbackTemp_FWD_DEFINED__ #define __IMemAllocatorNotifyCallbackTemp_FWD_DEFINED__ typedef struct IMemAllocatorNotifyCallbackTemp IMemAllocatorNotifyCallbackTemp; #endif #ifndef __IMemInputPin_FWD_DEFINED__ #define __IMemInputPin_FWD_DEFINED__ typedef struct IMemInputPin IMemInputPin; #endif #ifndef __IPin_FWD_DEFINED__ #define __IPin_FWD_DEFINED__ typedef struct IPin IPin; #endif #ifndef __IReferenceClock_FWD_DEFINED__ #define __IReferenceClock_FWD_DEFINED__ typedef struct IReferenceClock IReferenceClock; #endif typedef struct _PinInfo { IBaseFilter *pFilter; PIN_DIRECTION dir; WCHAR achName[128]; } PIN_INFO; /***************************************************************************** * IPin interface */ #ifndef __IPin_INTERFACE_DEFINED__ #define __IPin_INTERFACE_DEFINED__ DEFINE_GUID(IID_IPin, 0x56a86891, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70); #if defined(__cplusplus) && !defined(CINTERFACE) struct IPin : public IUnknown { virtual HRESULT STDMETHODCALLTYPE Connect( IPin* pReceivePin, const AM_MEDIA_TYPE* pmt) = 0; virtual HRESULT STDMETHODCALLTYPE ReceiveConnection( IPin* pConnector, const AM_MEDIA_TYPE* pmt) = 0; virtual HRESULT STDMETHODCALLTYPE Disconnect( ) = 0; virtual HRESULT STDMETHODCALLTYPE ConnectedTo( IPin** pPin) = 0; virtual HRESULT STDMETHODCALLTYPE ConnectionMediaType( AM_MEDIA_TYPE* pmt) = 0; virtual HRESULT STDMETHODCALLTYPE QueryPinInfo( PIN_INFO* pInfo) = 0; virtual HRESULT STDMETHODCALLTYPE QueryDirection( PIN_DIRECTION* pPinDir) = 0; virtual HRESULT STDMETHODCALLTYPE QueryId( LPWSTR* Id) = 0; virtual HRESULT STDMETHODCALLTYPE QueryAccept( const AM_MEDIA_TYPE* pmt) = 0; virtual HRESULT STDMETHODCALLTYPE EnumMediaTypes( IEnumMediaTypes** ppEnum) = 0; virtual HRESULT STDMETHODCALLTYPE QueryInternalConnections( IPin** apPin, ULONG* nPin) = 0; virtual HRESULT STDMETHODCALLTYPE EndOfStream( ) = 0; virtual HRESULT STDMETHODCALLTYPE BeginFlush( ) = 0; virtual HRESULT STDMETHODCALLTYPE EndFlush( ) = 0; virtual HRESULT STDMETHODCALLTYPE NewSegment( REFERENCE_TIME tStart, REFERENCE_TIME tStop, double dRate) = 0; }; #else typedef struct IPinVtbl IPinVtbl; struct IPin { const IPinVtbl* lpVtbl; }; struct IPinVtbl { ICOM_MSVTABLE_COMPAT_FIELDS /*** IUnknown methods ***/ HRESULT (STDMETHODCALLTYPE *QueryInterface)( IPin* This, REFIID riid, void** ppvObject); ULONG (STDMETHODCALLTYPE *AddRef)( IPin* This); ULONG (STDMETHODCALLTYPE *Release)( IPin* This); /*** IPin methods ***/ HRESULT (STDMETHODCALLTYPE *Connect)( IPin* This, IPin* pReceivePin, const AM_MEDIA_TYPE* pmt); HRESULT (STDMETHODCALLTYPE *ReceiveConnection)( IPin* This, IPin* pConnector, const AM_MEDIA_TYPE* pmt); HRESULT (STDMETHODCALLTYPE *Disconnect)( IPin* This); HRESULT (STDMETHODCALLTYPE *ConnectedTo)( IPin* This, IPin** pPin); HRESULT (STDMETHODCALLTYPE *ConnectionMediaType)( IPin* This, AM_MEDIA_TYPE* pmt); HRESULT (STDMETHODCALLTYPE *QueryPinInfo)( IPin* This, PIN_INFO* pInfo); HRESULT (STDMETHODCALLTYPE *QueryDirection)( IPin* This, PIN_DIRECTION* pPinDir); HRESULT (STDMETHODCALLTYPE *QueryId)( IPin* This, LPWSTR* Id); HRESULT (STDMETHODCALLTYPE *QueryAccept)( IPin* This, const AM_MEDIA_TYPE* pmt); HRESULT (STDMETHODCALLTYPE *EnumMediaTypes)( IPin* This, IEnumMediaTypes** ppEnum); HRESULT (STDMETHODCALLTYPE *QueryInternalConnections)( IPin* This, IPin** apPin, ULONG* nPin); HRESULT (STDMETHODCALLTYPE *EndOfStream)( IPin* This); HRESULT (STDMETHODCALLTYPE *BeginFlush)( IPin* This); HRESULT (STDMETHODCALLTYPE *EndFlush)( IPin* This); HRESULT (STDMETHODCALLTYPE *NewSegment)( IPin* This, REFERENCE_TIME tStart, REFERENCE_TIME tStop, double dRate); }; /*** IUnknown methods ***/ #define IPin_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) #define IPin_AddRef(p) (p)->lpVtbl->AddRef(p) #define IPin_Release(p) (p)->lpVtbl->Release(p) /*** IPin methods ***/ #define IPin_Connect(p,a,b) (p)->lpVtbl->Connect(p,a,b) #define IPin_ReceiveConnection(p,a,b) (p)->lpVtbl->ReceiveConnection(p,a,b) #define IPin_Disconnect(p) (p)->lpVtbl->Disconnect(p) #define IPin_ConnectedTo(p,a) (p)->lpVtbl->ConnectedTo(p,a) #define IPin_ConnectionMediaType(p,a) (p)->lpVtbl->ConnectionMediaType(p,a) #define IPin_QueryPinInfo(p,a) (p)->lpVtbl->QueryPinInfo(p,a) #define IPin_QueryDirection(p,a) (p)->lpVtbl->QueryDirection(p,a) #define IPin_QueryId(p,a) (p)->lpVtbl->QueryId(p,a) #define IPin_QueryAccept(p,a) (p)->lpVtbl->QueryAccept(p,a) #define IPin_EnumMediaTypes(p,a) (p)->lpVtbl->EnumMediaTypes(p,a) #define IPin_QueryInternalConnections(p,a,b) (p)->lpVtbl->QueryInternalConnections(p,a,b) #define IPin_EndOfStream(p) (p)->lpVtbl->EndOfStream(p) #define IPin_BeginFlush(p) (p)->lpVtbl->BeginFlush(p) #define IPin_EndFlush(p) (p)->lpVtbl->EndFlush(p) #define IPin_NewSegment(p,a,b,c) (p)->lpVtbl->NewSegment(p,a,b,c) #endif #define IPin_METHODS \ ICOM_MSVTABLE_COMPAT_FIELDS \ /*** IUnknown methods ***/ \ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \ STDMETHOD_(ULONG,AddRef)(THIS) PURE; \ STDMETHOD_(ULONG,Release)(THIS) PURE; \ /*** IPin methods ***/ \ STDMETHOD_(HRESULT,Connect)(THIS_ IPin* pReceivePin, const AM_MEDIA_TYPE* pmt) PURE; \ STDMETHOD_(HRESULT,ReceiveConnection)(THIS_ IPin* pConnector, const AM_MEDIA_TYPE* pmt) PURE; \ STDMETHOD_(HRESULT,Disconnect)(THIS) PURE; \ STDMETHOD_(HRESULT,ConnectedTo)(THIS_ IPin** pPin) PURE; \ STDMETHOD_(HRESULT,ConnectionMediaType)(THIS_ AM_MEDIA_TYPE* pmt) PURE; \ STDMETHOD_(HRESULT,QueryPinInfo)(THIS_ PIN_INFO* pInfo) PURE; \ STDMETHOD_(HRESULT,QueryDirection)(THIS_ PIN_DIRECTION* pPinDir) PURE; \ STDMETHOD_(HRESULT,QueryId)(THIS_ LPWSTR* Id) PURE; \ STDMETHOD_(HRESULT,QueryAccept)(THIS_ const AM_MEDIA_TYPE* pmt) PURE; \ STDMETHOD_(HRESULT,EnumMediaTypes)(THIS_ IEnumMediaTypes** ppEnum) PURE; \ STDMETHOD_(HRESULT,QueryInternalConnections)(THIS_ IPin** apPin, ULONG* nPin) PURE; \ STDMETHOD_(HRESULT,EndOfStream)(THIS) PURE; \ STDMETHOD_(HRESULT,BeginFlush)(THIS) PURE; \ STDMETHOD_(HRESULT,EndFlush)(THIS) PURE; \ STDMETHOD_(HRESULT,NewSegment)(THIS_ REFERENCE_TIME tStart, REFERENCE_TIME tStop, double dRate) PURE; HRESULT CALLBACK IPin_Connect_Proxy( IPin* This, IPin* pReceivePin, const AM_MEDIA_TYPE* pmt); void __RPC_STUB IPin_Connect_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IPin_ReceiveConnection_Proxy( IPin* This, IPin* pConnector, const AM_MEDIA_TYPE* pmt); void __RPC_STUB IPin_ReceiveConnection_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IPin_Disconnect_Proxy( IPin* This); void __RPC_STUB IPin_Disconnect_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IPin_ConnectedTo_Proxy( IPin* This, IPin** pPin); void __RPC_STUB IPin_ConnectedTo_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IPin_ConnectionMediaType_Proxy( IPin* This, AM_MEDIA_TYPE* pmt); void __RPC_STUB IPin_ConnectionMediaType_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IPin_QueryPinInfo_Proxy( IPin* This, PIN_INFO* pInfo); void __RPC_STUB IPin_QueryPinInfo_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IPin_QueryDirection_Proxy( IPin* This, PIN_DIRECTION* pPinDir); void __RPC_STUB IPin_QueryDirection_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IPin_QueryId_Proxy( IPin* This, LPWSTR* Id); void __RPC_STUB IPin_QueryId_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IPin_QueryAccept_Proxy( IPin* This, const AM_MEDIA_TYPE* pmt); void __RPC_STUB IPin_QueryAccept_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IPin_EnumMediaTypes_Proxy( IPin* This, IEnumMediaTypes** ppEnum); void __RPC_STUB IPin_EnumMediaTypes_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IPin_QueryInternalConnections_Proxy( IPin* This, IPin** apPin, ULONG* nPin); void __RPC_STUB IPin_QueryInternalConnections_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IPin_EndOfStream_Proxy( IPin* This); void __RPC_STUB IPin_EndOfStream_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IPin_BeginFlush_Proxy( IPin* This); void __RPC_STUB IPin_BeginFlush_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IPin_EndFlush_Proxy( IPin* This); void __RPC_STUB IPin_EndFlush_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IPin_NewSegment_Proxy( IPin* This, REFERENCE_TIME tStart, REFERENCE_TIME tStop, double dRate); void __RPC_STUB IPin_NewSegment_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); #endif /* __IPin_INTERFACE_DEFINED__ */ typedef IPin *PPIN; /***************************************************************************** * IEnumPins interface */ #ifndef __IEnumPins_INTERFACE_DEFINED__ #define __IEnumPins_INTERFACE_DEFINED__ DEFINE_GUID(IID_IEnumPins, 0x56a86892, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70); #if defined(__cplusplus) && !defined(CINTERFACE) struct IEnumPins : public IUnknown { virtual HRESULT STDMETHODCALLTYPE Next( ULONG cPins, IPin** ppPins, ULONG* pcFetched) = 0; virtual HRESULT STDMETHODCALLTYPE Skip( ULONG cPins) = 0; virtual HRESULT STDMETHODCALLTYPE Reset( ) = 0; virtual HRESULT STDMETHODCALLTYPE Clone( IEnumPins** ppEnum) = 0; }; #else typedef struct IEnumPinsVtbl IEnumPinsVtbl; struct IEnumPins { const IEnumPinsVtbl* lpVtbl; }; struct IEnumPinsVtbl { ICOM_MSVTABLE_COMPAT_FIELDS /*** IUnknown methods ***/ HRESULT (STDMETHODCALLTYPE *QueryInterface)( IEnumPins* This, REFIID riid, void** ppvObject); ULONG (STDMETHODCALLTYPE *AddRef)( IEnumPins* This); ULONG (STDMETHODCALLTYPE *Release)( IEnumPins* This); /*** IEnumPins methods ***/ HRESULT (STDMETHODCALLTYPE *Next)( IEnumPins* This, ULONG cPins, IPin** ppPins, ULONG* pcFetched); HRESULT (STDMETHODCALLTYPE *Skip)( IEnumPins* This, ULONG cPins); HRESULT (STDMETHODCALLTYPE *Reset)( IEnumPins* This); HRESULT (STDMETHODCALLTYPE *Clone)( IEnumPins* This, IEnumPins** ppEnum); }; /*** IUnknown methods ***/ #define IEnumPins_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) #define IEnumPins_AddRef(p) (p)->lpVtbl->AddRef(p) #define IEnumPins_Release(p) (p)->lpVtbl->Release(p) /*** IEnumPins methods ***/ #define IEnumPins_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c) #define IEnumPins_Skip(p,a) (p)->lpVtbl->Skip(p,a) #define IEnumPins_Reset(p) (p)->lpVtbl->Reset(p) #define IEnumPins_Clone(p,a) (p)->lpVtbl->Clone(p,a) #endif #define IEnumPins_METHODS \ ICOM_MSVTABLE_COMPAT_FIELDS \ /*** IUnknown methods ***/ \ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \ STDMETHOD_(ULONG,AddRef)(THIS) PURE; \ STDMETHOD_(ULONG,Release)(THIS) PURE; \ /*** IEnumPins methods ***/ \ STDMETHOD_(HRESULT,Next)(THIS_ ULONG cPins, IPin** ppPins, ULONG* pcFetched) PURE; \ STDMETHOD_(HRESULT,Skip)(THIS_ ULONG cPins) PURE; \ STDMETHOD_(HRESULT,Reset)(THIS) PURE; \ STDMETHOD_(HRESULT,Clone)(THIS_ IEnumPins** ppEnum) PURE; HRESULT CALLBACK IEnumPins_Next_Proxy( IEnumPins* This, ULONG cPins, IPin** ppPins, ULONG* pcFetched); void __RPC_STUB IEnumPins_Next_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IEnumPins_Skip_Proxy( IEnumPins* This, ULONG cPins); void __RPC_STUB IEnumPins_Skip_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IEnumPins_Reset_Proxy( IEnumPins* This); void __RPC_STUB IEnumPins_Reset_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IEnumPins_Clone_Proxy( IEnumPins* This, IEnumPins** ppEnum); void __RPC_STUB IEnumPins_Clone_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); #endif /* __IEnumPins_INTERFACE_DEFINED__ */ typedef IEnumPins *PENUMPINS; /***************************************************************************** * IEnumMediaTypes interface */ #ifndef __IEnumMediaTypes_INTERFACE_DEFINED__ #define __IEnumMediaTypes_INTERFACE_DEFINED__ DEFINE_GUID(IID_IEnumMediaTypes, 0x89c31040, 0x846b, 0x11ce, 0x97,0xd3, 0x00,0xaa,0x00,0x55,0x59,0x5a); #if defined(__cplusplus) && !defined(CINTERFACE) struct IEnumMediaTypes : public IUnknown { virtual HRESULT STDMETHODCALLTYPE Next( ULONG cMediaTypes, AM_MEDIA_TYPE** ppMediaTypes, ULONG* pcFetched) = 0; virtual HRESULT STDMETHODCALLTYPE Skip( ULONG cMediaTypes) = 0; virtual HRESULT STDMETHODCALLTYPE Reset( ) = 0; virtual HRESULT STDMETHODCALLTYPE Clone( IEnumMediaTypes** ppEnum) = 0; }; #else typedef struct IEnumMediaTypesVtbl IEnumMediaTypesVtbl; struct IEnumMediaTypes { const IEnumMediaTypesVtbl* lpVtbl; }; struct IEnumMediaTypesVtbl { ICOM_MSVTABLE_COMPAT_FIELDS /*** IUnknown methods ***/ HRESULT (STDMETHODCALLTYPE *QueryInterface)( IEnumMediaTypes* This, REFIID riid, void** ppvObject); ULONG (STDMETHODCALLTYPE *AddRef)( IEnumMediaTypes* This); ULONG (STDMETHODCALLTYPE *Release)( IEnumMediaTypes* This); /*** IEnumMediaTypes methods ***/ HRESULT (STDMETHODCALLTYPE *Next)( IEnumMediaTypes* This, ULONG cMediaTypes, AM_MEDIA_TYPE** ppMediaTypes, ULONG* pcFetched); HRESULT (STDMETHODCALLTYPE *Skip)( IEnumMediaTypes* This, ULONG cMediaTypes); HRESULT (STDMETHODCALLTYPE *Reset)( IEnumMediaTypes* This); HRESULT (STDMETHODCALLTYPE *Clone)( IEnumMediaTypes* This, IEnumMediaTypes** ppEnum); }; /*** IUnknown methods ***/ #define IEnumMediaTypes_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) #define IEnumMediaTypes_AddRef(p) (p)->lpVtbl->AddRef(p) #define IEnumMediaTypes_Release(p) (p)->lpVtbl->Release(p) /*** IEnumMediaTypes methods ***/ #define IEnumMediaTypes_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c) #define IEnumMediaTypes_Skip(p,a) (p)->lpVtbl->Skip(p,a) #define IEnumMediaTypes_Reset(p) (p)->lpVtbl->Reset(p) #define IEnumMediaTypes_Clone(p,a) (p)->lpVtbl->Clone(p,a) #endif #define IEnumMediaTypes_METHODS \ ICOM_MSVTABLE_COMPAT_FIELDS \ /*** IUnknown methods ***/ \ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \ STDMETHOD_(ULONG,AddRef)(THIS) PURE; \ STDMETHOD_(ULONG,Release)(THIS) PURE; \ /*** IEnumMediaTypes methods ***/ \ STDMETHOD_(HRESULT,Next)(THIS_ ULONG cMediaTypes, AM_MEDIA_TYPE** ppMediaTypes, ULONG* pcFetched) PURE; \ STDMETHOD_(HRESULT,Skip)(THIS_ ULONG cMediaTypes) PURE; \ STDMETHOD_(HRESULT,Reset)(THIS) PURE; \ STDMETHOD_(HRESULT,Clone)(THIS_ IEnumMediaTypes** ppEnum) PURE; HRESULT CALLBACK IEnumMediaTypes_Next_Proxy( IEnumMediaTypes* This, ULONG cMediaTypes, AM_MEDIA_TYPE** ppMediaTypes, ULONG* pcFetched); void __RPC_STUB IEnumMediaTypes_Next_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IEnumMediaTypes_Skip_Proxy( IEnumMediaTypes* This, ULONG cMediaTypes); void __RPC_STUB IEnumMediaTypes_Skip_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IEnumMediaTypes_Reset_Proxy( IEnumMediaTypes* This); void __RPC_STUB IEnumMediaTypes_Reset_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IEnumMediaTypes_Clone_Proxy( IEnumMediaTypes* This, IEnumMediaTypes** ppEnum); void __RPC_STUB IEnumMediaTypes_Clone_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); #endif /* __IEnumMediaTypes_INTERFACE_DEFINED__ */ typedef IEnumMediaTypes *PENUMMEDIATYPES; /***************************************************************************** * IFilterGraph interface */ #ifndef __IFilterGraph_INTERFACE_DEFINED__ #define __IFilterGraph_INTERFACE_DEFINED__ DEFINE_GUID(IID_IFilterGraph, 0x56a8689f, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70); #if defined(__cplusplus) && !defined(CINTERFACE) struct IFilterGraph : public IUnknown { virtual HRESULT STDMETHODCALLTYPE AddFilter( IBaseFilter* pFilter, LPCWSTR pName) = 0; virtual HRESULT STDMETHODCALLTYPE RemoveFilter( IBaseFilter* pFilter) = 0; virtual HRESULT STDMETHODCALLTYPE EnumFilters( IEnumFilters** ppEnum) = 0; virtual HRESULT STDMETHODCALLTYPE FindFilterByName( LPCWSTR pName, IBaseFilter** ppFilter) = 0; virtual HRESULT STDMETHODCALLTYPE ConnectDirect( IPin* ppinOut, IPin* ppinIn, const AM_MEDIA_TYPE* pmt) = 0; virtual HRESULT STDMETHODCALLTYPE Reconnect( IPin* ppin) = 0; virtual HRESULT STDMETHODCALLTYPE Disconnect( IPin* ppin) = 0; virtual HRESULT STDMETHODCALLTYPE SetDefaultSyncSource( ) = 0; }; #else typedef struct IFilterGraphVtbl IFilterGraphVtbl; struct IFilterGraph { const IFilterGraphVtbl* lpVtbl; }; struct IFilterGraphVtbl { ICOM_MSVTABLE_COMPAT_FIELDS /*** IUnknown methods ***/ HRESULT (STDMETHODCALLTYPE *QueryInterface)( IFilterGraph* This, REFIID riid, void** ppvObject); ULONG (STDMETHODCALLTYPE *AddRef)( IFilterGraph* This); ULONG (STDMETHODCALLTYPE *Release)( IFilterGraph* This); /*** IFilterGraph methods ***/ HRESULT (STDMETHODCALLTYPE *AddFilter)( IFilterGraph* This, IBaseFilter* pFilter, LPCWSTR pName); HRESULT (STDMETHODCALLTYPE *RemoveFilter)( IFilterGraph* This, IBaseFilter* pFilter); HRESULT (STDMETHODCALLTYPE *EnumFilters)( IFilterGraph* This, IEnumFilters** ppEnum); HRESULT (STDMETHODCALLTYPE *FindFilterByName)( IFilterGraph* This, LPCWSTR pName, IBaseFilter** ppFilter); HRESULT (STDMETHODCALLTYPE *ConnectDirect)( IFilterGraph* This, IPin* ppinOut, IPin* ppinIn, const AM_MEDIA_TYPE* pmt); HRESULT (STDMETHODCALLTYPE *Reconnect)( IFilterGraph* This, IPin* ppin); HRESULT (STDMETHODCALLTYPE *Disconnect)( IFilterGraph* This, IPin* ppin); HRESULT (STDMETHODCALLTYPE *SetDefaultSyncSource)( IFilterGraph* This); }; /*** IUnknown methods ***/ #define IFilterGraph_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) #define IFilterGraph_AddRef(p) (p)->lpVtbl->AddRef(p) #define IFilterGraph_Release(p) (p)->lpVtbl->Release(p) /*** IFilterGraph methods ***/ #define IFilterGraph_AddFilter(p,a,b) (p)->lpVtbl->AddFilter(p,a,b) #define IFilterGraph_RemoveFilter(p,a) (p)->lpVtbl->RemoveFilter(p,a) #define IFilterGraph_EnumFilters(p,a) (p)->lpVtbl->EnumFilters(p,a) #define IFilterGraph_FindFilterByName(p,a,b) (p)->lpVtbl->FindFilterByName(p,a,b) #define IFilterGraph_ConnectDirect(p,a,b,c) (p)->lpVtbl->ConnectDirect(p,a,b,c) #define IFilterGraph_Reconnect(p,a) (p)->lpVtbl->Reconnect(p,a) #define IFilterGraph_Disconnect(p,a) (p)->lpVtbl->Disconnect(p,a) #define IFilterGraph_SetDefaultSyncSource(p) (p)->lpVtbl->SetDefaultSyncSource(p) #endif #define IFilterGraph_METHODS \ ICOM_MSVTABLE_COMPAT_FIELDS \ /*** IUnknown methods ***/ \ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \ STDMETHOD_(ULONG,AddRef)(THIS) PURE; \ STDMETHOD_(ULONG,Release)(THIS) PURE; \ /*** IFilterGraph methods ***/ \ STDMETHOD_(HRESULT,AddFilter)(THIS_ IBaseFilter* pFilter, LPCWSTR pName) PURE; \ STDMETHOD_(HRESULT,RemoveFilter)(THIS_ IBaseFilter* pFilter) PURE; \ STDMETHOD_(HRESULT,EnumFilters)(THIS_ IEnumFilters** ppEnum) PURE; \ STDMETHOD_(HRESULT,FindFilterByName)(THIS_ LPCWSTR pName, IBaseFilter** ppFilter) PURE; \ STDMETHOD_(HRESULT,ConnectDirect)(THIS_ IPin* ppinOut, IPin* ppinIn, const AM_MEDIA_TYPE* pmt) PURE; \ STDMETHOD_(HRESULT,Reconnect)(THIS_ IPin* ppin) PURE; \ STDMETHOD_(HRESULT,Disconnect)(THIS_ IPin* ppin) PURE; \ STDMETHOD_(HRESULT,SetDefaultSyncSource)(THIS) PURE; HRESULT CALLBACK IFilterGraph_AddFilter_Proxy( IFilterGraph* This, IBaseFilter* pFilter, LPCWSTR pName); void __RPC_STUB IFilterGraph_AddFilter_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IFilterGraph_RemoveFilter_Proxy( IFilterGraph* This, IBaseFilter* pFilter); void __RPC_STUB IFilterGraph_RemoveFilter_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IFilterGraph_EnumFilters_Proxy( IFilterGraph* This, IEnumFilters** ppEnum); void __RPC_STUB IFilterGraph_EnumFilters_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IFilterGraph_FindFilterByName_Proxy( IFilterGraph* This, LPCWSTR pName, IBaseFilter** ppFilter); void __RPC_STUB IFilterGraph_FindFilterByName_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IFilterGraph_ConnectDirect_Proxy( IFilterGraph* This, IPin* ppinOut, IPin* ppinIn, const AM_MEDIA_TYPE* pmt); void __RPC_STUB IFilterGraph_ConnectDirect_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IFilterGraph_Reconnect_Proxy( IFilterGraph* This, IPin* ppin); void __RPC_STUB IFilterGraph_Reconnect_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IFilterGraph_Disconnect_Proxy( IFilterGraph* This, IPin* ppin); void __RPC_STUB IFilterGraph_Disconnect_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IFilterGraph_SetDefaultSyncSource_Proxy( IFilterGraph* This); void __RPC_STUB IFilterGraph_SetDefaultSyncSource_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); #endif /* __IFilterGraph_INTERFACE_DEFINED__ */ typedef IFilterGraph *PFILTERGRAPH; /***************************************************************************** * IEnumFilters interface */ #ifndef __IEnumFilters_INTERFACE_DEFINED__ #define __IEnumFilters_INTERFACE_DEFINED__ DEFINE_GUID(IID_IEnumFilters, 0x56a86893, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70); #if defined(__cplusplus) && !defined(CINTERFACE) struct IEnumFilters : public IUnknown { virtual HRESULT STDMETHODCALLTYPE Next( ULONG cFilters, IBaseFilter** ppFilter, ULONG* pcFetched) = 0; virtual HRESULT STDMETHODCALLTYPE Skip( ULONG cFilters) = 0; virtual HRESULT STDMETHODCALLTYPE Reset( ) = 0; virtual HRESULT STDMETHODCALLTYPE Clone( IEnumFilters** ppEnum) = 0; }; #else typedef struct IEnumFiltersVtbl IEnumFiltersVtbl; struct IEnumFilters { const IEnumFiltersVtbl* lpVtbl; }; struct IEnumFiltersVtbl { ICOM_MSVTABLE_COMPAT_FIELDS /*** IUnknown methods ***/ HRESULT (STDMETHODCALLTYPE *QueryInterface)( IEnumFilters* This, REFIID riid, void** ppvObject); ULONG (STDMETHODCALLTYPE *AddRef)( IEnumFilters* This); ULONG (STDMETHODCALLTYPE *Release)( IEnumFilters* This); /*** IEnumFilters methods ***/ HRESULT (STDMETHODCALLTYPE *Next)( IEnumFilters* This, ULONG cFilters, IBaseFilter** ppFilter, ULONG* pcFetched); HRESULT (STDMETHODCALLTYPE *Skip)( IEnumFilters* This, ULONG cFilters); HRESULT (STDMETHODCALLTYPE *Reset)( IEnumFilters* This); HRESULT (STDMETHODCALLTYPE *Clone)( IEnumFilters* This, IEnumFilters** ppEnum); }; /*** IUnknown methods ***/ #define IEnumFilters_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) #define IEnumFilters_AddRef(p) (p)->lpVtbl->AddRef(p) #define IEnumFilters_Release(p) (p)->lpVtbl->Release(p) /*** IEnumFilters methods ***/ #define IEnumFilters_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c) #define IEnumFilters_Skip(p,a) (p)->lpVtbl->Skip(p,a) #define IEnumFilters_Reset(p) (p)->lpVtbl->Reset(p) #define IEnumFilters_Clone(p,a) (p)->lpVtbl->Clone(p,a) #endif #define IEnumFilters_METHODS \ ICOM_MSVTABLE_COMPAT_FIELDS \ /*** IUnknown methods ***/ \ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \ STDMETHOD_(ULONG,AddRef)(THIS) PURE; \ STDMETHOD_(ULONG,Release)(THIS) PURE; \ /*** IEnumFilters methods ***/ \ STDMETHOD_(HRESULT,Next)(THIS_ ULONG cFilters, IBaseFilter** ppFilter, ULONG* pcFetched) PURE; \ STDMETHOD_(HRESULT,Skip)(THIS_ ULONG cFilters) PURE; \ STDMETHOD_(HRESULT,Reset)(THIS) PURE; \ STDMETHOD_(HRESULT,Clone)(THIS_ IEnumFilters** ppEnum) PURE; HRESULT CALLBACK IEnumFilters_Next_Proxy( IEnumFilters* This, ULONG cFilters, IBaseFilter** ppFilter, ULONG* pcFetched); void __RPC_STUB IEnumFilters_Next_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IEnumFilters_Skip_Proxy( IEnumFilters* This, ULONG cFilters); void __RPC_STUB IEnumFilters_Skip_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IEnumFilters_Reset_Proxy( IEnumFilters* This); void __RPC_STUB IEnumFilters_Reset_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IEnumFilters_Clone_Proxy( IEnumFilters* This, IEnumFilters** ppEnum); void __RPC_STUB IEnumFilters_Clone_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); #endif /* __IEnumFilters_INTERFACE_DEFINED__ */ typedef IEnumFilters *PENUMFILTERS; typedef enum _FilterState { State_Stopped, State_Paused, State_Running } FILTER_STATE; /***************************************************************************** * IMediaFilter interface */ #ifndef __IMediaFilter_INTERFACE_DEFINED__ #define __IMediaFilter_INTERFACE_DEFINED__ DEFINE_GUID(IID_IMediaFilter, 0x56a86899, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70); #if defined(__cplusplus) && !defined(CINTERFACE) struct IMediaFilter : public IPersist { virtual HRESULT STDMETHODCALLTYPE Stop( ) = 0; virtual HRESULT STDMETHODCALLTYPE Pause( ) = 0; virtual HRESULT STDMETHODCALLTYPE Run( REFERENCE_TIME tStart) = 0; virtual HRESULT STDMETHODCALLTYPE GetState( DWORD dwMilliSecsTimeout, FILTER_STATE* State) = 0; virtual HRESULT STDMETHODCALLTYPE SetSyncSource( IReferenceClock* pClock) = 0; virtual HRESULT STDMETHODCALLTYPE GetSyncSource( IReferenceClock** pClock) = 0; }; #else typedef struct IMediaFilterVtbl IMediaFilterVtbl; struct IMediaFilter { const IMediaFilterVtbl* lpVtbl; }; struct IMediaFilterVtbl { ICOM_MSVTABLE_COMPAT_FIELDS /*** IUnknown methods ***/ HRESULT (STDMETHODCALLTYPE *QueryInterface)( IMediaFilter* This, REFIID riid, void** ppvObject); ULONG (STDMETHODCALLTYPE *AddRef)( IMediaFilter* This); ULONG (STDMETHODCALLTYPE *Release)( IMediaFilter* This); /*** IPersist methods ***/ HRESULT (STDMETHODCALLTYPE *GetClassID)( IMediaFilter* This, CLSID* pClassID); /*** IMediaFilter methods ***/ HRESULT (STDMETHODCALLTYPE *Stop)( IMediaFilter* This); HRESULT (STDMETHODCALLTYPE *Pause)( IMediaFilter* This); HRESULT (STDMETHODCALLTYPE *Run)( IMediaFilter* This, REFERENCE_TIME tStart); HRESULT (STDMETHODCALLTYPE *GetState)( IMediaFilter* This, DWORD dwMilliSecsTimeout, FILTER_STATE* State); HRESULT (STDMETHODCALLTYPE *SetSyncSource)( IMediaFilter* This, IReferenceClock* pClock); HRESULT (STDMETHODCALLTYPE *GetSyncSource)( IMediaFilter* This, IReferenceClock** pClock); }; /*** IUnknown methods ***/ #define IMediaFilter_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) #define IMediaFilter_AddRef(p) (p)->lpVtbl->AddRef(p) #define IMediaFilter_Release(p) (p)->lpVtbl->Release(p) /*** IPersist methods ***/ #define IMediaFilter_GetClassID(p,a) (p)->lpVtbl->GetClassID(p,a) /*** IMediaFilter methods ***/ #define IMediaFilter_Stop(p) (p)->lpVtbl->Stop(p) #define IMediaFilter_Pause(p) (p)->lpVtbl->Pause(p) #define IMediaFilter_Run(p,a) (p)->lpVtbl->Run(p,a) #define IMediaFilter_GetState(p,a,b) (p)->lpVtbl->GetState(p,a,b) #define IMediaFilter_SetSyncSource(p,a) (p)->lpVtbl->SetSyncSource(p,a) #define IMediaFilter_GetSyncSource(p,a) (p)->lpVtbl->GetSyncSource(p,a) #endif #define IMediaFilter_METHODS \ ICOM_MSVTABLE_COMPAT_FIELDS \ /*** IUnknown methods ***/ \ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \ STDMETHOD_(ULONG,AddRef)(THIS) PURE; \ STDMETHOD_(ULONG,Release)(THIS) PURE; \ /*** IPersist methods ***/ \ STDMETHOD_(HRESULT,GetClassID)(THIS_ CLSID* pClassID) PURE; \ /*** IMediaFilter methods ***/ \ STDMETHOD_(HRESULT,Stop)(THIS) PURE; \ STDMETHOD_(HRESULT,Pause)(THIS) PURE; \ STDMETHOD_(HRESULT,Run)(THIS_ REFERENCE_TIME tStart) PURE; \ STDMETHOD_(HRESULT,GetState)(THIS_ DWORD dwMilliSecsTimeout, FILTER_STATE* State) PURE; \ STDMETHOD_(HRESULT,SetSyncSource)(THIS_ IReferenceClock* pClock) PURE; \ STDMETHOD_(HRESULT,GetSyncSource)(THIS_ IReferenceClock** pClock) PURE; HRESULT CALLBACK IMediaFilter_Stop_Proxy( IMediaFilter* This); void __RPC_STUB IMediaFilter_Stop_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IMediaFilter_Pause_Proxy( IMediaFilter* This); void __RPC_STUB IMediaFilter_Pause_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IMediaFilter_Run_Proxy( IMediaFilter* This, REFERENCE_TIME tStart); void __RPC_STUB IMediaFilter_Run_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IMediaFilter_GetState_Proxy( IMediaFilter* This, DWORD dwMilliSecsTimeout, FILTER_STATE* State); void __RPC_STUB IMediaFilter_GetState_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IMediaFilter_SetSyncSource_Proxy( IMediaFilter* This, IReferenceClock* pClock); void __RPC_STUB IMediaFilter_SetSyncSource_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IMediaFilter_GetSyncSource_Proxy( IMediaFilter* This, IReferenceClock** pClock); void __RPC_STUB IMediaFilter_GetSyncSource_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); #endif /* __IMediaFilter_INTERFACE_DEFINED__ */ typedef IMediaFilter *PMEDIAFILTER; typedef struct _FilterInfo { WCHAR achName[128]; IFilterGraph *pGraph; } FILTER_INFO; /***************************************************************************** * IBaseFilter interface */ #ifndef __IBaseFilter_INTERFACE_DEFINED__ #define __IBaseFilter_INTERFACE_DEFINED__ DEFINE_GUID(IID_IBaseFilter, 0x56a86895, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70); #if defined(__cplusplus) && !defined(CINTERFACE) struct IBaseFilter : public IMediaFilter { virtual HRESULT STDMETHODCALLTYPE EnumPins( IEnumPins** ppEnum) = 0; virtual HRESULT STDMETHODCALLTYPE FindPin( LPCWSTR Id, IPin** ppPin) = 0; virtual HRESULT STDMETHODCALLTYPE QueryFilterInfo( FILTER_INFO* pInfo) = 0; virtual HRESULT STDMETHODCALLTYPE JoinFilterGraph( IFilterGraph* pGraph, LPCWSTR pName) = 0; virtual HRESULT STDMETHODCALLTYPE QueryVendorInfo( LPWSTR* pVendorInfo) = 0; }; #else typedef struct IBaseFilterVtbl IBaseFilterVtbl; struct IBaseFilter { const IBaseFilterVtbl* lpVtbl; }; struct IBaseFilterVtbl { ICOM_MSVTABLE_COMPAT_FIELDS /*** IUnknown methods ***/ HRESULT (STDMETHODCALLTYPE *QueryInterface)( IBaseFilter* This, REFIID riid, void** ppvObject); ULONG (STDMETHODCALLTYPE *AddRef)( IBaseFilter* This); ULONG (STDMETHODCALLTYPE *Release)( IBaseFilter* This); /*** IPersist methods ***/ HRESULT (STDMETHODCALLTYPE *GetClassID)( IBaseFilter* This, CLSID* pClassID); /*** IMediaFilter methods ***/ HRESULT (STDMETHODCALLTYPE *Stop)( IBaseFilter* This); HRESULT (STDMETHODCALLTYPE *Pause)( IBaseFilter* This); HRESULT (STDMETHODCALLTYPE *Run)( IBaseFilter* This, REFERENCE_TIME tStart); HRESULT (STDMETHODCALLTYPE *GetState)( IBaseFilter* This, DWORD dwMilliSecsTimeout, FILTER_STATE* State); HRESULT (STDMETHODCALLTYPE *SetSyncSource)( IBaseFilter* This, IReferenceClock* pClock); HRESULT (STDMETHODCALLTYPE *GetSyncSource)( IBaseFilter* This, IReferenceClock** pClock); /*** IBaseFilter methods ***/ HRESULT (STDMETHODCALLTYPE *EnumPins)( IBaseFilter* This, IEnumPins** ppEnum); HRESULT (STDMETHODCALLTYPE *FindPin)( IBaseFilter* This, LPCWSTR Id, IPin** ppPin); HRESULT (STDMETHODCALLTYPE *QueryFilterInfo)( IBaseFilter* This, FILTER_INFO* pInfo); HRESULT (STDMETHODCALLTYPE *JoinFilterGraph)( IBaseFilter* This, IFilterGraph* pGraph, LPCWSTR pName); HRESULT (STDMETHODCALLTYPE *QueryVendorInfo)( IBaseFilter* This, LPWSTR* pVendorInfo); }; /*** IUnknown methods ***/ #define IBaseFilter_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) #define IBaseFilter_AddRef(p) (p)->lpVtbl->AddRef(p) #define IBaseFilter_Release(p) (p)->lpVtbl->Release(p) /*** IPersist methods ***/ #define IBaseFilter_GetClassID(p,a) (p)->lpVtbl->GetClassID(p,a) /*** IMediaFilter methods ***/ #define IBaseFilter_Stop(p) (p)->lpVtbl->Stop(p) #define IBaseFilter_Pause(p) (p)->lpVtbl->Pause(p) #define IBaseFilter_Run(p,a) (p)->lpVtbl->Run(p,a) #define IBaseFilter_GetState(p,a,b) (p)->lpVtbl->GetState(p,a,b) #define IBaseFilter_SetSyncSource(p,a) (p)->lpVtbl->SetSyncSource(p,a) #define IBaseFilter_GetSyncSource(p,a) (p)->lpVtbl->GetSyncSource(p,a) /*** IBaseFilter methods ***/ #define IBaseFilter_EnumPins(p,a) (p)->lpVtbl->EnumPins(p,a) #define IBaseFilter_FindPin(p,a,b) (p)->lpVtbl->FindPin(p,a,b) #define IBaseFilter_QueryFilterInfo(p,a) (p)->lpVtbl->QueryFilterInfo(p,a) #define IBaseFilter_JoinFilterGraph(p,a,b) (p)->lpVtbl->JoinFilterGraph(p,a,b) #define IBaseFilter_QueryVendorInfo(p,a) (p)->lpVtbl->QueryVendorInfo(p,a) #endif #define IBaseFilter_METHODS \ ICOM_MSVTABLE_COMPAT_FIELDS \ /*** IUnknown methods ***/ \ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \ STDMETHOD_(ULONG,AddRef)(THIS) PURE; \ STDMETHOD_(ULONG,Release)(THIS) PURE; \ /*** IPersist methods ***/ \ STDMETHOD_(HRESULT,GetClassID)(THIS_ CLSID* pClassID) PURE; \ /*** IMediaFilter methods ***/ \ STDMETHOD_(HRESULT,Stop)(THIS) PURE; \ STDMETHOD_(HRESULT,Pause)(THIS) PURE; \ STDMETHOD_(HRESULT,Run)(THIS_ REFERENCE_TIME tStart) PURE; \ STDMETHOD_(HRESULT,GetState)(THIS_ DWORD dwMilliSecsTimeout, FILTER_STATE* State) PURE; \ STDMETHOD_(HRESULT,SetSyncSource)(THIS_ IReferenceClock* pClock) PURE; \ STDMETHOD_(HRESULT,GetSyncSource)(THIS_ IReferenceClock** pClock) PURE; \ /*** IBaseFilter methods ***/ \ STDMETHOD_(HRESULT,EnumPins)(THIS_ IEnumPins** ppEnum) PURE; \ STDMETHOD_(HRESULT,FindPin)(THIS_ LPCWSTR Id, IPin** ppPin) PURE; \ STDMETHOD_(HRESULT,QueryFilterInfo)(THIS_ FILTER_INFO* pInfo) PURE; \ STDMETHOD_(HRESULT,JoinFilterGraph)(THIS_ IFilterGraph* pGraph, LPCWSTR pName) PURE; \ STDMETHOD_(HRESULT,QueryVendorInfo)(THIS_ LPWSTR* pVendorInfo) PURE; HRESULT CALLBACK IBaseFilter_EnumPins_Proxy( IBaseFilter* This, IEnumPins** ppEnum); void __RPC_STUB IBaseFilter_EnumPins_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IBaseFilter_FindPin_Proxy( IBaseFilter* This, LPCWSTR Id, IPin** ppPin); void __RPC_STUB IBaseFilter_FindPin_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IBaseFilter_QueryFilterInfo_Proxy( IBaseFilter* This, FILTER_INFO* pInfo); void __RPC_STUB IBaseFilter_QueryFilterInfo_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IBaseFilter_JoinFilterGraph_Proxy( IBaseFilter* This, IFilterGraph* pGraph, LPCWSTR pName); void __RPC_STUB IBaseFilter_JoinFilterGraph_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IBaseFilter_QueryVendorInfo_Proxy( IBaseFilter* This, LPWSTR* pVendorInfo); void __RPC_STUB IBaseFilter_QueryVendorInfo_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); #endif /* __IBaseFilter_INTERFACE_DEFINED__ */ typedef IBaseFilter *PFILTER; /***************************************************************************** * IReferenceClock interface */ #ifndef __IReferenceClock_INTERFACE_DEFINED__ #define __IReferenceClock_INTERFACE_DEFINED__ DEFINE_GUID(IID_IReferenceClock, 0x56a86897, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70); #if defined(__cplusplus) && !defined(CINTERFACE) struct IReferenceClock : public IUnknown { virtual HRESULT STDMETHODCALLTYPE GetTime( REFERENCE_TIME* pTime) = 0; virtual HRESULT STDMETHODCALLTYPE AdviseTime( REFERENCE_TIME baseTime, REFERENCE_TIME streamTime, HEVENT hEvent, DWORD_PTR* pdwAdviseCookie) = 0; virtual HRESULT STDMETHODCALLTYPE AdvisePeriodic( REFERENCE_TIME startTime, REFERENCE_TIME periodTime, HSEMAPHORE hSemaphore, DWORD_PTR* pdwAdviseCookie) = 0; virtual HRESULT STDMETHODCALLTYPE Unadvise( DWORD_PTR dwAdviseCookie) = 0; }; #else typedef struct IReferenceClockVtbl IReferenceClockVtbl; struct IReferenceClock { const IReferenceClockVtbl* lpVtbl; }; struct IReferenceClockVtbl { ICOM_MSVTABLE_COMPAT_FIELDS /*** IUnknown methods ***/ HRESULT (STDMETHODCALLTYPE *QueryInterface)( IReferenceClock* This, REFIID riid, void** ppvObject); ULONG (STDMETHODCALLTYPE *AddRef)( IReferenceClock* This); ULONG (STDMETHODCALLTYPE *Release)( IReferenceClock* This); /*** IReferenceClock methods ***/ HRESULT (STDMETHODCALLTYPE *GetTime)( IReferenceClock* This, REFERENCE_TIME* pTime); HRESULT (STDMETHODCALLTYPE *AdviseTime)( IReferenceClock* This, REFERENCE_TIME baseTime, REFERENCE_TIME streamTime, HEVENT hEvent, DWORD_PTR* pdwAdviseCookie); HRESULT (STDMETHODCALLTYPE *AdvisePeriodic)( IReferenceClock* This, REFERENCE_TIME startTime, REFERENCE_TIME periodTime, HSEMAPHORE hSemaphore, DWORD_PTR* pdwAdviseCookie); HRESULT (STDMETHODCALLTYPE *Unadvise)( IReferenceClock* This, DWORD_PTR dwAdviseCookie); }; /*** IUnknown methods ***/ #define IReferenceClock_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) #define IReferenceClock_AddRef(p) (p)->lpVtbl->AddRef(p) #define IReferenceClock_Release(p) (p)->lpVtbl->Release(p) /*** IReferenceClock methods ***/ #define IReferenceClock_GetTime(p,a) (p)->lpVtbl->GetTime(p,a) #define IReferenceClock_AdviseTime(p,a,b,c,d) (p)->lpVtbl->AdviseTime(p,a,b,c,d) #define IReferenceClock_AdvisePeriodic(p,a,b,c,d) (p)->lpVtbl->AdvisePeriodic(p,a,b,c,d) #define IReferenceClock_Unadvise(p,a) (p)->lpVtbl->Unadvise(p,a) #endif #define IReferenceClock_METHODS \ ICOM_MSVTABLE_COMPAT_FIELDS \ /*** IUnknown methods ***/ \ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \ STDMETHOD_(ULONG,AddRef)(THIS) PURE; \ STDMETHOD_(ULONG,Release)(THIS) PURE; \ /*** IReferenceClock methods ***/ \ STDMETHOD_(HRESULT,GetTime)(THIS_ REFERENCE_TIME* pTime) PURE; \ STDMETHOD_(HRESULT,AdviseTime)(THIS_ REFERENCE_TIME baseTime, REFERENCE_TIME streamTime, HEVENT hEvent, DWORD_PTR* pdwAdviseCookie) PURE; \ STDMETHOD_(HRESULT,AdvisePeriodic)(THIS_ REFERENCE_TIME startTime, REFERENCE_TIME periodTime, HSEMAPHORE hSemaphore, DWORD_PTR* pdwAdviseCookie) PURE; \ STDMETHOD_(HRESULT,Unadvise)(THIS_ DWORD_PTR dwAdviseCookie) PURE; HRESULT CALLBACK IReferenceClock_GetTime_Proxy( IReferenceClock* This, REFERENCE_TIME* pTime); void __RPC_STUB IReferenceClock_GetTime_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IReferenceClock_AdviseTime_Proxy( IReferenceClock* This, REFERENCE_TIME baseTime, REFERENCE_TIME streamTime, HEVENT hEvent, DWORD_PTR* pdwAdviseCookie); void __RPC_STUB IReferenceClock_AdviseTime_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IReferenceClock_AdvisePeriodic_Proxy( IReferenceClock* This, REFERENCE_TIME startTime, REFERENCE_TIME periodTime, HSEMAPHORE hSemaphore, DWORD_PTR* pdwAdviseCookie); void __RPC_STUB IReferenceClock_AdvisePeriodic_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IReferenceClock_Unadvise_Proxy( IReferenceClock* This, DWORD_PTR dwAdviseCookie); void __RPC_STUB IReferenceClock_Unadvise_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); #endif /* __IReferenceClock_INTERFACE_DEFINED__ */ typedef IReferenceClock *PREFERENCECLOCK; /***************************************************************************** * IMediaSample interface */ #ifndef __IMediaSample_INTERFACE_DEFINED__ #define __IMediaSample_INTERFACE_DEFINED__ DEFINE_GUID(IID_IMediaSample, 0x56a8689a, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70); #if defined(__cplusplus) && !defined(CINTERFACE) struct IMediaSample : public IUnknown { 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 length) = 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 IMediaSampleVtbl IMediaSampleVtbl; struct IMediaSample { const IMediaSampleVtbl* lpVtbl; }; struct IMediaSampleVtbl { ICOM_MSVTABLE_COMPAT_FIELDS /*** IUnknown methods ***/ HRESULT (STDMETHODCALLTYPE *QueryInterface)( IMediaSample* This, REFIID riid, void** ppvObject); ULONG (STDMETHODCALLTYPE *AddRef)( IMediaSample* This); ULONG (STDMETHODCALLTYPE *Release)( IMediaSample* This); /*** IMediaSample methods ***/ HRESULT (STDMETHODCALLTYPE *GetPointer)( IMediaSample* This, BYTE** ppBuffer); long (STDMETHODCALLTYPE *GetSize)( IMediaSample* This); HRESULT (STDMETHODCALLTYPE *GetTime)( IMediaSample* This, REFERENCE_TIME* pTimeStart, REFERENCE_TIME* pTimeEnd); HRESULT (STDMETHODCALLTYPE *SetTime)( IMediaSample* This, REFERENCE_TIME* pTimeStart, REFERENCE_TIME* pTimeEnd); HRESULT (STDMETHODCALLTYPE *IsSyncPoint)( IMediaSample* This); HRESULT (STDMETHODCALLTYPE *SetSyncPoint)( IMediaSample* This, BOOL bIsSyncPoint); HRESULT (STDMETHODCALLTYPE *IsPreroll)( IMediaSample* This); HRESULT (STDMETHODCALLTYPE *SetPreroll)( IMediaSample* This, BOOL bIsPreroll); long (STDMETHODCALLTYPE *GetActualDataLength)( IMediaSample* This); HRESULT (STDMETHODCALLTYPE *SetActualDataLength)( IMediaSample* This, long length); HRESULT (STDMETHODCALLTYPE *GetMediaType)( IMediaSample* This, AM_MEDIA_TYPE** ppMediaType); HRESULT (STDMETHODCALLTYPE *SetMediaType)( IMediaSample* This, AM_MEDIA_TYPE* pMediaType); HRESULT (STDMETHODCALLTYPE *IsDiscontinuity)( IMediaSample* This); HRESULT (STDMETHODCALLTYPE *SetDiscontinuity)( IMediaSample* This, BOOL bDiscontinuity); HRESULT (STDMETHODCALLTYPE *GetMediaTime)( IMediaSample* This, LONGLONG* pTimeStart, LONGLONG* pTimeEnd); HRESULT (STDMETHODCALLTYPE *SetMediaTime)( IMediaSample* This, LONGLONG* pTimeStart, LONGLONG* pTimeEnd); }; /*** IUnknown methods ***/ #define IMediaSample_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) #define IMediaSample_AddRef(p) (p)->lpVtbl->AddRef(p) #define IMediaSample_Release(p) (p)->lpVtbl->Release(p) /*** IMediaSample methods ***/ #define IMediaSample_GetPointer(p,a) (p)->lpVtbl->GetPointer(p,a) #define IMediaSample_GetSize(p) (p)->lpVtbl->GetSize(p) #define IMediaSample_GetTime(p,a,b) (p)->lpVtbl->GetTime(p,a,b) #define IMediaSample_SetTime(p,a,b) (p)->lpVtbl->SetTime(p,a,b) #define IMediaSample_IsSyncPoint(p) (p)->lpVtbl->IsSyncPoint(p) #define IMediaSample_SetSyncPoint(p,a) (p)->lpVtbl->SetSyncPoint(p,a) #define IMediaSample_IsPreroll(p) (p)->lpVtbl->IsPreroll(p) #define IMediaSample_SetPreroll(p,a) (p)->lpVtbl->SetPreroll(p,a) #define IMediaSample_GetActualDataLength(p) (p)->lpVtbl->GetActualDataLength(p) #define IMediaSample_SetActualDataLength(p,a) (p)->lpVtbl->SetActualDataLength(p,a) #define IMediaSample_GetMediaType(p,a) (p)->lpVtbl->GetMediaType(p,a) #define IMediaSample_SetMediaType(p,a) (p)->lpVtbl->SetMediaType(p,a) #define IMediaSample_IsDiscontinuity(p) (p)->lpVtbl->IsDiscontinuity(p) #define IMediaSample_SetDiscontinuity(p,a) (p)->lpVtbl->SetDiscontinuity(p,a) #define IMediaSample_GetMediaTime(p,a,b) (p)->lpVtbl->GetMediaTime(p,a,b) #define IMediaSample_SetMediaTime(p,a,b) (p)->lpVtbl->SetMediaTime(p,a,b) #endif #define IMediaSample_METHODS \ ICOM_MSVTABLE_COMPAT_FIELDS \ /*** IUnknown methods ***/ \ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \ STDMETHOD_(ULONG,AddRef)(THIS) PURE; \ STDMETHOD_(ULONG,Release)(THIS) PURE; \ /*** IMediaSample methods ***/ \ STDMETHOD_(HRESULT,GetPointer)(THIS_ BYTE** ppBuffer) PURE; \ STDMETHOD_(long,GetSize)(THIS) PURE; \ STDMETHOD_(HRESULT,GetTime)(THIS_ REFERENCE_TIME* pTimeStart, REFERENCE_TIME* pTimeEnd) PURE; \ STDMETHOD_(HRESULT,SetTime)(THIS_ REFERENCE_TIME* pTimeStart, REFERENCE_TIME* pTimeEnd) PURE; \ STDMETHOD_(HRESULT,IsSyncPoint)(THIS) PURE; \ STDMETHOD_(HRESULT,SetSyncPoint)(THIS_ BOOL bIsSyncPoint) PURE; \ STDMETHOD_(HRESULT,IsPreroll)(THIS) PURE; \ STDMETHOD_(HRESULT,SetPreroll)(THIS_ BOOL bIsPreroll) PURE; \ STDMETHOD_(long,GetActualDataLength)(THIS) PURE; \ STDMETHOD_(HRESULT,SetActualDataLength)(THIS_ long length) PURE; \ STDMETHOD_(HRESULT,GetMediaType)(THIS_ AM_MEDIA_TYPE** ppMediaType) PURE; \ STDMETHOD_(HRESULT,SetMediaType)(THIS_ AM_MEDIA_TYPE* pMediaType) PURE; \ STDMETHOD_(HRESULT,IsDiscontinuity)(THIS) PURE; \ STDMETHOD_(HRESULT,SetDiscontinuity)(THIS_ BOOL bDiscontinuity) PURE; \ STDMETHOD_(HRESULT,GetMediaTime)(THIS_ LONGLONG* pTimeStart, LONGLONG* pTimeEnd) PURE; \ STDMETHOD_(HRESULT,SetMediaTime)(THIS_ LONGLONG* pTimeStart, LONGLONG* pTimeEnd) PURE; HRESULT CALLBACK IMediaSample_GetPointer_Proxy( IMediaSample* This, BYTE** ppBuffer); void __RPC_STUB IMediaSample_GetPointer_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); long CALLBACK IMediaSample_GetSize_Proxy( IMediaSample* This); void __RPC_STUB IMediaSample_GetSize_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IMediaSample_GetTime_Proxy( IMediaSample* This, REFERENCE_TIME* pTimeStart, REFERENCE_TIME* pTimeEnd); void __RPC_STUB IMediaSample_GetTime_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IMediaSample_SetTime_Proxy( IMediaSample* This, REFERENCE_TIME* pTimeStart, REFERENCE_TIME* pTimeEnd); void __RPC_STUB IMediaSample_SetTime_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IMediaSample_IsSyncPoint_Proxy( IMediaSample* This); void __RPC_STUB IMediaSample_IsSyncPoint_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IMediaSample_SetSyncPoint_Proxy( IMediaSample* This, BOOL bIsSyncPoint); void __RPC_STUB IMediaSample_SetSyncPoint_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IMediaSample_IsPreroll_Proxy( IMediaSample* This); void __RPC_STUB IMediaSample_IsPreroll_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IMediaSample_SetPreroll_Proxy( IMediaSample* This, BOOL bIsPreroll); void __RPC_STUB IMediaSample_SetPreroll_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); long CALLBACK IMediaSample_GetActualDataLength_Proxy( IMediaSample* This); void __RPC_STUB IMediaSample_GetActualDataLength_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IMediaSample_SetActualDataLength_Proxy( IMediaSample* This, long length); void __RPC_STUB IMediaSample_SetActualDataLength_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IMediaSample_GetMediaType_Proxy( IMediaSample* This, AM_MEDIA_TYPE** ppMediaType); void __RPC_STUB IMediaSample_GetMediaType_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IMediaSample_SetMediaType_Proxy( IMediaSample* This, AM_MEDIA_TYPE* pMediaType); void __RPC_STUB IMediaSample_SetMediaType_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IMediaSample_IsDiscontinuity_Proxy( IMediaSample* This); void __RPC_STUB IMediaSample_IsDiscontinuity_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IMediaSample_SetDiscontinuity_Proxy( IMediaSample* This, BOOL bDiscontinuity); void __RPC_STUB IMediaSample_SetDiscontinuity_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IMediaSample_GetMediaTime_Proxy( IMediaSample* This, LONGLONG* pTimeStart, LONGLONG* pTimeEnd); void __RPC_STUB IMediaSample_GetMediaTime_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IMediaSample_SetMediaTime_Proxy( IMediaSample* This, LONGLONG* pTimeStart, LONGLONG* pTimeEnd); void __RPC_STUB IMediaSample_SetMediaTime_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); #endif /* __IMediaSample_INTERFACE_DEFINED__ */ typedef IMediaSample *PMEDIASAMPLE; enum tagAM_SAMPLE_PROPERTY_FLAGS { AM_SAMPLE_SPLICEPOINT = 0x1, AM_SAMPLE_PREROLL = 0x2, AM_SAMPLE_DATADISCONTINUITY = 0x4, AM_SAMPLE_TYPECHANGED = 0x8, AM_SAMPLE_TIMEVALID = 0x10, AM_SAMPLE_TIMEDISCONTINUITY = 0x40, AM_SAMPLE_FLUSH_ON_PAUSE = 0x80, AM_SAMPLE_STOPVALID = 0x100, AM_SAMPLE_ENDOFSTREAM = 0x200, AM_STREAM_MEDIA = 0, AM_STREAM_CONTROL = 1 }; typedef struct tagAM_SAMPLE2_PROPERTIES { DWORD cbData; DWORD dwTypeSpecificFlags; DWORD dwSampleFlags; LONG lActual; REFERENCE_TIME tStart; REFERENCE_TIME tStop; DWORD dwStreamId; AM_MEDIA_TYPE *pMediaType; BYTE *pbBuffer; LONG cbBuffer; } AM_SAMPLE2_PROPERTIES; #ifndef __IMediaSample2_FWD_DEFINED__ #define __IMediaSample2_FWD_DEFINED__ typedef struct IMediaSample2 IMediaSample2; #endif /***************************************************************************** * IMediaSample2 interface */ #ifndef __IMediaSample2_INTERFACE_DEFINED__ #define __IMediaSample2_INTERFACE_DEFINED__ DEFINE_GUID(IID_IMediaSample2, 0x36b73884, 0xc2c8, 0x11cf, 0x8b,0x46, 0x00,0x80,0x5f,0x6c,0xef,0x60); #if defined(__cplusplus) && !defined(CINTERFACE) struct IMediaSample2 : public IMediaSample { virtual HRESULT STDMETHODCALLTYPE GetProperties( DWORD cbProperties, BYTE* pbProperties) = 0; virtual HRESULT STDMETHODCALLTYPE SetProperties( DWORD cbProperties, const BYTE* pbProperties) = 0; }; #else typedef struct IMediaSample2Vtbl IMediaSample2Vtbl; struct IMediaSample2 { const IMediaSample2Vtbl* lpVtbl; }; struct IMediaSample2Vtbl { ICOM_MSVTABLE_COMPAT_FIELDS /*** IUnknown methods ***/ HRESULT (STDMETHODCALLTYPE *QueryInterface)( IMediaSample2* This, REFIID riid, void** ppvObject); ULONG (STDMETHODCALLTYPE *AddRef)( IMediaSample2* This); ULONG (STDMETHODCALLTYPE *Release)( IMediaSample2* This); /*** IMediaSample methods ***/ HRESULT (STDMETHODCALLTYPE *GetPointer)( IMediaSample2* This, BYTE** ppBuffer); long (STDMETHODCALLTYPE *GetSize)( IMediaSample2* This); HRESULT (STDMETHODCALLTYPE *GetTime)( IMediaSample2* This, REFERENCE_TIME* pTimeStart, REFERENCE_TIME* pTimeEnd); HRESULT (STDMETHODCALLTYPE *SetTime)( IMediaSample2* This, REFERENCE_TIME* pTimeStart, REFERENCE_TIME* pTimeEnd); HRESULT (STDMETHODCALLTYPE *IsSyncPoint)( IMediaSample2* This); HRESULT (STDMETHODCALLTYPE *SetSyncPoint)( IMediaSample2* This, BOOL bIsSyncPoint); HRESULT (STDMETHODCALLTYPE *IsPreroll)( IMediaSample2* This); HRESULT (STDMETHODCALLTYPE *SetPreroll)( IMediaSample2* This, BOOL bIsPreroll); long (STDMETHODCALLTYPE *GetActualDataLength)( IMediaSample2* This); HRESULT (STDMETHODCALLTYPE *SetActualDataLength)( IMediaSample2* This, long length); HRESULT (STDMETHODCALLTYPE *GetMediaType)( IMediaSample2* This, AM_MEDIA_TYPE** ppMediaType); HRESULT (STDMETHODCALLTYPE *SetMediaType)( IMediaSample2* This, AM_MEDIA_TYPE* pMediaType); HRESULT (STDMETHODCALLTYPE *IsDiscontinuity)( IMediaSample2* This); HRESULT (STDMETHODCALLTYPE *SetDiscontinuity)( IMediaSample2* This, BOOL bDiscontinuity); HRESULT (STDMETHODCALLTYPE *GetMediaTime)( IMediaSample2* This, LONGLONG* pTimeStart, LONGLONG* pTimeEnd); HRESULT (STDMETHODCALLTYPE *SetMediaTime)( IMediaSample2* This, LONGLONG* pTimeStart, LONGLONG* pTimeEnd); /*** IMediaSample2 methods ***/ HRESULT (STDMETHODCALLTYPE *GetProperties)( IMediaSample2* This, DWORD cbProperties, BYTE* pbProperties); HRESULT (STDMETHODCALLTYPE *SetProperties)( IMediaSample2* This, DWORD cbProperties, const BYTE* pbProperties); }; /*** IUnknown methods ***/ #define IMediaSample2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) #define IMediaSample2_AddRef(p) (p)->lpVtbl->AddRef(p) #define IMediaSample2_Release(p) (p)->lpVtbl->Release(p) /*** IMediaSample methods ***/ #define IMediaSample2_GetPointer(p,a) (p)->lpVtbl->GetPointer(p,a) #define IMediaSample2_GetSize(p) (p)->lpVtbl->GetSize(p) #define IMediaSample2_GetTime(p,a,b) (p)->lpVtbl->GetTime(p,a,b) #define IMediaSample2_SetTime(p,a,b) (p)->lpVtbl->SetTime(p,a,b) #define IMediaSample2_IsSyncPoint(p) (p)->lpVtbl->IsSyncPoint(p) #define IMediaSample2_SetSyncPoint(p,a) (p)->lpVtbl->SetSyncPoint(p,a) #define IMediaSample2_IsPreroll(p) (p)->lpVtbl->IsPreroll(p) #define IMediaSample2_SetPreroll(p,a) (p)->lpVtbl->SetPreroll(p,a) #define IMediaSample2_GetActualDataLength(p) (p)->lpVtbl->GetActualDataLength(p) #define IMediaSample2_SetActualDataLength(p,a) (p)->lpVtbl->SetActualDataLength(p,a) #define IMediaSample2_GetMediaType(p,a) (p)->lpVtbl->GetMediaType(p,a) #define IMediaSample2_SetMediaType(p,a) (p)->lpVtbl->SetMediaType(p,a) #define IMediaSample2_IsDiscontinuity(p) (p)->lpVtbl->IsDiscontinuity(p) #define IMediaSample2_SetDiscontinuity(p,a) (p)->lpVtbl->SetDiscontinuity(p,a) #define IMediaSample2_GetMediaTime(p,a,b) (p)->lpVtbl->GetMediaTime(p,a,b) #define IMediaSample2_SetMediaTime(p,a,b) (p)->lpVtbl->SetMediaTime(p,a,b) /*** IMediaSample2 methods ***/ #define IMediaSample2_GetProperties(p,a,b) (p)->lpVtbl->GetProperties(p,a,b) #define IMediaSample2_SetProperties(p,a,b) (p)->lpVtbl->SetProperties(p,a,b) #endif #define IMediaSample2_METHODS \ ICOM_MSVTABLE_COMPAT_FIELDS \ /*** IUnknown methods ***/ \ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \ STDMETHOD_(ULONG,AddRef)(THIS) PURE; \ STDMETHOD_(ULONG,Release)(THIS) PURE; \ /*** IMediaSample methods ***/ \ STDMETHOD_(HRESULT,GetPointer)(THIS_ BYTE** ppBuffer) PURE; \ STDMETHOD_(long,GetSize)(THIS) PURE; \ STDMETHOD_(HRESULT,GetTime)(THIS_ REFERENCE_TIME* pTimeStart, REFERENCE_TIME* pTimeEnd) PURE; \ STDMETHOD_(HRESULT,SetTime)(THIS_ REFERENCE_TIME* pTimeStart, REFERENCE_TIME* pTimeEnd) PURE; \ STDMETHOD_(HRESULT,IsSyncPoint)(THIS) PURE; \ STDMETHOD_(HRESULT,SetSyncPoint)(THIS_ BOOL bIsSyncPoint) PURE; \ STDMETHOD_(HRESULT,IsPreroll)(THIS) PURE; \ STDMETHOD_(HRESULT,SetPreroll)(THIS_ BOOL bIsPreroll) PURE; \ STDMETHOD_(long,GetActualDataLength)(THIS) PURE; \ STDMETHOD_(HRESULT,SetActualDataLength)(THIS_ long length) PURE; \ STDMETHOD_(HRESULT,GetMediaType)(THIS_ AM_MEDIA_TYPE** ppMediaType) PURE; \ STDMETHOD_(HRESULT,SetMediaType)(THIS_ AM_MEDIA_TYPE* pMediaType) PURE; \ STDMETHOD_(HRESULT,IsDiscontinuity)(THIS) PURE; \ STDMETHOD_(HRESULT,SetDiscontinuity)(THIS_ BOOL bDiscontinuity) PURE; \ STDMETHOD_(HRESULT,GetMediaTime)(THIS_ LONGLONG* pTimeStart, LONGLONG* pTimeEnd) PURE; \ STDMETHOD_(HRESULT,SetMediaTime)(THIS_ LONGLONG* pTimeStart, LONGLONG* pTimeEnd) PURE; \ /*** IMediaSample2 methods ***/ \ STDMETHOD_(HRESULT,GetProperties)(THIS_ DWORD cbProperties, BYTE* pbProperties) PURE; \ STDMETHOD_(HRESULT,SetProperties)(THIS_ DWORD cbProperties, const BYTE* pbProperties) PURE; HRESULT CALLBACK IMediaSample2_GetProperties_Proxy( IMediaSample2* This, DWORD cbProperties, BYTE* pbProperties); void __RPC_STUB IMediaSample2_GetProperties_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IMediaSample2_SetProperties_Proxy( IMediaSample2* This, DWORD cbProperties, const BYTE* pbProperties); void __RPC_STUB IMediaSample2_SetProperties_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); #endif /* __IMediaSample2_INTERFACE_DEFINED__ */ typedef IMediaSample2 *PMEDIASAMPLE2; #define AM_GBF_PREVFRAMESKIPPED 1 #define AM_GBF_NOTASYNCPOINT 2 #define AM_GBF_NOWAIT 4 /***************************************************************************** * IMemAllocator interface */ #ifndef __IMemAllocator_INTERFACE_DEFINED__ #define __IMemAllocator_INTERFACE_DEFINED__ DEFINE_GUID(IID_IMemAllocator, 0x56a8689c, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70); #if defined(__cplusplus) && !defined(CINTERFACE) struct IMemAllocator : public IUnknown { virtual HRESULT STDMETHODCALLTYPE SetProperties( ALLOCATOR_PROPERTIES* pRequest, ALLOCATOR_PROPERTIES* pActual) = 0; virtual HRESULT STDMETHODCALLTYPE GetProperties( ALLOCATOR_PROPERTIES* pProps) = 0; virtual HRESULT STDMETHODCALLTYPE Commit( ) = 0; virtual HRESULT STDMETHODCALLTYPE Decommit( ) = 0; virtual HRESULT STDMETHODCALLTYPE GetBuffer( IMediaSample** ppBuffer, REFERENCE_TIME* pStartTime, REFERENCE_TIME* pEndTime, DWORD dwFlags) = 0; virtual HRESULT STDMETHODCALLTYPE ReleaseBuffer( IMediaSample* pBuffer) = 0; }; #else typedef struct IMemAllocatorVtbl IMemAllocatorVtbl; struct IMemAllocator { const IMemAllocatorVtbl* lpVtbl; }; struct IMemAllocatorVtbl { ICOM_MSVTABLE_COMPAT_FIELDS /*** IUnknown methods ***/ HRESULT (STDMETHODCALLTYPE *QueryInterface)( IMemAllocator* This, REFIID riid, void** ppvObject); ULONG (STDMETHODCALLTYPE *AddRef)( IMemAllocator* This); ULONG (STDMETHODCALLTYPE *Release)( IMemAllocator* This); /*** IMemAllocator methods ***/ HRESULT (STDMETHODCALLTYPE *SetProperties)( IMemAllocator* This, ALLOCATOR_PROPERTIES* pRequest, ALLOCATOR_PROPERTIES* pActual); HRESULT (STDMETHODCALLTYPE *GetProperties)( IMemAllocator* This, ALLOCATOR_PROPERTIES* pProps); HRESULT (STDMETHODCALLTYPE *Commit)( IMemAllocator* This); HRESULT (STDMETHODCALLTYPE *Decommit)( IMemAllocator* This); HRESULT (STDMETHODCALLTYPE *GetBuffer)( IMemAllocator* This, IMediaSample** ppBuffer, REFERENCE_TIME* pStartTime, REFERENCE_TIME* pEndTime, DWORD dwFlags); HRESULT (STDMETHODCALLTYPE *ReleaseBuffer)( IMemAllocator* This, IMediaSample* pBuffer); }; /*** IUnknown methods ***/ #define IMemAllocator_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) #define IMemAllocator_AddRef(p) (p)->lpVtbl->AddRef(p) #define IMemAllocator_Release(p) (p)->lpVtbl->Release(p) /*** IMemAllocator methods ***/ #define IMemAllocator_SetProperties(p,a,b) (p)->lpVtbl->SetProperties(p,a,b) #define IMemAllocator_GetProperties(p,a) (p)->lpVtbl->GetProperties(p,a) #define IMemAllocator_Commit(p) (p)->lpVtbl->Commit(p) #define IMemAllocator_Decommit(p) (p)->lpVtbl->Decommit(p) #define IMemAllocator_GetBuffer(p,a,b,c,d) (p)->lpVtbl->GetBuffer(p,a,b,c,d) #define IMemAllocator_ReleaseBuffer(p,a) (p)->lpVtbl->ReleaseBuffer(p,a) #endif #define IMemAllocator_METHODS \ ICOM_MSVTABLE_COMPAT_FIELDS \ /*** IUnknown methods ***/ \ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \ STDMETHOD_(ULONG,AddRef)(THIS) PURE; \ STDMETHOD_(ULONG,Release)(THIS) PURE; \ /*** IMemAllocator methods ***/ \ STDMETHOD_(HRESULT,SetProperties)(THIS_ ALLOCATOR_PROPERTIES* pRequest, ALLOCATOR_PROPERTIES* pActual) PURE; \ STDMETHOD_(HRESULT,GetProperties)(THIS_ ALLOCATOR_PROPERTIES* pProps) PURE; \ STDMETHOD_(HRESULT,Commit)(THIS) PURE; \ STDMETHOD_(HRESULT,Decommit)(THIS) PURE; \ STDMETHOD_(HRESULT,GetBuffer)(THIS_ IMediaSample** ppBuffer, REFERENCE_TIME* pStartTime, REFERENCE_TIME* pEndTime, DWORD dwFlags) PURE; \ STDMETHOD_(HRESULT,ReleaseBuffer)(THIS_ IMediaSample* pBuffer) PURE; HRESULT CALLBACK IMemAllocator_SetProperties_Proxy( IMemAllocator* This, ALLOCATOR_PROPERTIES* pRequest, ALLOCATOR_PROPERTIES* pActual); void __RPC_STUB IMemAllocator_SetProperties_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IMemAllocator_GetProperties_Proxy( IMemAllocator* This, ALLOCATOR_PROPERTIES* pProps); void __RPC_STUB IMemAllocator_GetProperties_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IMemAllocator_Commit_Proxy( IMemAllocator* This); void __RPC_STUB IMemAllocator_Commit_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IMemAllocator_Decommit_Proxy( IMemAllocator* This); void __RPC_STUB IMemAllocator_Decommit_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IMemAllocator_GetBuffer_Proxy( IMemAllocator* This, IMediaSample** ppBuffer, REFERENCE_TIME* pStartTime, REFERENCE_TIME* pEndTime, DWORD dwFlags); void __RPC_STUB IMemAllocator_GetBuffer_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IMemAllocator_ReleaseBuffer_Proxy( IMemAllocator* This, IMediaSample* pBuffer); void __RPC_STUB IMemAllocator_ReleaseBuffer_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); #endif /* __IMemAllocator_INTERFACE_DEFINED__ */ typedef IMemAllocator *PMEMALLOCATOR; /***************************************************************************** * IMemAllocatorCallbackTemp interface */ #ifndef __IMemAllocatorCallbackTemp_INTERFACE_DEFINED__ #define __IMemAllocatorCallbackTemp_INTERFACE_DEFINED__ DEFINE_GUID(IID_IMemAllocatorCallbackTemp, 0x379a0cf0, 0xc1de, 0x11d2, 0xab,0xf5, 0x00,0xa0,0xc9,0x05,0xf3,0x75); #if defined(__cplusplus) && !defined(CINTERFACE) struct IMemAllocatorCallbackTemp : public IMemAllocator { virtual HRESULT STDMETHODCALLTYPE SetNotify( IMemAllocatorNotifyCallbackTemp* pNotify) = 0; virtual HRESULT STDMETHODCALLTYPE GetFreeCount( LONG* plBuffersFree) = 0; }; #else typedef struct IMemAllocatorCallbackTempVtbl IMemAllocatorCallbackTempVtbl; struct IMemAllocatorCallbackTemp { const IMemAllocatorCallbackTempVtbl* lpVtbl; }; struct IMemAllocatorCallbackTempVtbl { ICOM_MSVTABLE_COMPAT_FIELDS /*** IUnknown methods ***/ HRESULT (STDMETHODCALLTYPE *QueryInterface)( IMemAllocatorCallbackTemp* This, REFIID riid, void** ppvObject); ULONG (STDMETHODCALLTYPE *AddRef)( IMemAllocatorCallbackTemp* This); ULONG (STDMETHODCALLTYPE *Release)( IMemAllocatorCallbackTemp* This); /*** IMemAllocator methods ***/ HRESULT (STDMETHODCALLTYPE *SetProperties)( IMemAllocatorCallbackTemp* This, ALLOCATOR_PROPERTIES* pRequest, ALLOCATOR_PROPERTIES* pActual); HRESULT (STDMETHODCALLTYPE *GetProperties)( IMemAllocatorCallbackTemp* This, ALLOCATOR_PROPERTIES* pProps); HRESULT (STDMETHODCALLTYPE *Commit)( IMemAllocatorCallbackTemp* This); HRESULT (STDMETHODCALLTYPE *Decommit)( IMemAllocatorCallbackTemp* This); HRESULT (STDMETHODCALLTYPE *GetBuffer)( IMemAllocatorCallbackTemp* This, IMediaSample** ppBuffer, REFERENCE_TIME* pStartTime, REFERENCE_TIME* pEndTime, DWORD dwFlags); HRESULT (STDMETHODCALLTYPE *ReleaseBuffer)( IMemAllocatorCallbackTemp* This, IMediaSample* pBuffer); /*** IMemAllocatorCallbackTemp methods ***/ HRESULT (STDMETHODCALLTYPE *SetNotify)( IMemAllocatorCallbackTemp* This, IMemAllocatorNotifyCallbackTemp* pNotify); HRESULT (STDMETHODCALLTYPE *GetFreeCount)( IMemAllocatorCallbackTemp* This, LONG* plBuffersFree); }; /*** IUnknown methods ***/ #define IMemAllocatorCallbackTemp_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) #define IMemAllocatorCallbackTemp_AddRef(p) (p)->lpVtbl->AddRef(p) #define IMemAllocatorCallbackTemp_Release(p) (p)->lpVtbl->Release(p) /*** IMemAllocator methods ***/ #define IMemAllocatorCallbackTemp_SetProperties(p,a,b) (p)->lpVtbl->SetProperties(p,a,b) #define IMemAllocatorCallbackTemp_GetProperties(p,a) (p)->lpVtbl->GetProperties(p,a) #define IMemAllocatorCallbackTemp_Commit(p) (p)->lpVtbl->Commit(p) #define IMemAllocatorCallbackTemp_Decommit(p) (p)->lpVtbl->Decommit(p) #define IMemAllocatorCallbackTemp_GetBuffer(p,a,b,c,d) (p)->lpVtbl->GetBuffer(p,a,b,c,d) #define IMemAllocatorCallbackTemp_ReleaseBuffer(p,a) (p)->lpVtbl->ReleaseBuffer(p,a) /*** IMemAllocatorCallbackTemp methods ***/ #define IMemAllocatorCallbackTemp_SetNotify(p,a) (p)->lpVtbl->SetNotify(p,a) #define IMemAllocatorCallbackTemp_GetFreeCount(p,a) (p)->lpVtbl->GetFreeCount(p,a) #endif #define IMemAllocatorCallbackTemp_METHODS \ ICOM_MSVTABLE_COMPAT_FIELDS \ /*** IUnknown methods ***/ \ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \ STDMETHOD_(ULONG,AddRef)(THIS) PURE; \ STDMETHOD_(ULONG,Release)(THIS) PURE; \ /*** IMemAllocator methods ***/ \ STDMETHOD_(HRESULT,SetProperties)(THIS_ ALLOCATOR_PROPERTIES* pRequest, ALLOCATOR_PROPERTIES* pActual) PURE; \ STDMETHOD_(HRESULT,GetProperties)(THIS_ ALLOCATOR_PROPERTIES* pProps) PURE; \ STDMETHOD_(HRESULT,Commit)(THIS) PURE; \ STDMETHOD_(HRESULT,Decommit)(THIS) PURE; \ STDMETHOD_(HRESULT,GetBuffer)(THIS_ IMediaSample** ppBuffer, REFERENCE_TIME* pStartTime, REFERENCE_TIME* pEndTime, DWORD dwFlags) PURE; \ STDMETHOD_(HRESULT,ReleaseBuffer)(THIS_ IMediaSample* pBuffer) PURE; \ /*** IMemAllocatorCallbackTemp methods ***/ \ STDMETHOD_(HRESULT,SetNotify)(THIS_ IMemAllocatorNotifyCallbackTemp* pNotify) PURE; \ STDMETHOD_(HRESULT,GetFreeCount)(THIS_ LONG* plBuffersFree) PURE; HRESULT CALLBACK IMemAllocatorCallbackTemp_SetNotify_Proxy( IMemAllocatorCallbackTemp* This, IMemAllocatorNotifyCallbackTemp* pNotify); void __RPC_STUB IMemAllocatorCallbackTemp_SetNotify_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IMemAllocatorCallbackTemp_GetFreeCount_Proxy( IMemAllocatorCallbackTemp* This, LONG* plBuffersFree); void __RPC_STUB IMemAllocatorCallbackTemp_GetFreeCount_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); #endif /* __IMemAllocatorCallbackTemp_INTERFACE_DEFINED__ */ /***************************************************************************** * IMemAllocatorNotifyCallbackTemp interface */ #ifndef __IMemAllocatorNotifyCallbackTemp_INTERFACE_DEFINED__ #define __IMemAllocatorNotifyCallbackTemp_INTERFACE_DEFINED__ DEFINE_GUID(IID_IMemAllocatorNotifyCallbackTemp, 0x92980b30, 0xc1de, 0x11d2, 0xab,0xf5, 0x00,0xa0,0xc9,0x05,0xf3,0x75); #if defined(__cplusplus) && !defined(CINTERFACE) struct IMemAllocatorNotifyCallbackTemp : public IUnknown { virtual HRESULT STDMETHODCALLTYPE NotifyRelease( ) = 0; }; #else typedef struct IMemAllocatorNotifyCallbackTempVtbl IMemAllocatorNotifyCallbackTempVtbl; struct IMemAllocatorNotifyCallbackTemp { const IMemAllocatorNotifyCallbackTempVtbl* lpVtbl; }; struct IMemAllocatorNotifyCallbackTempVtbl { ICOM_MSVTABLE_COMPAT_FIELDS /*** IUnknown methods ***/ HRESULT (STDMETHODCALLTYPE *QueryInterface)( IMemAllocatorNotifyCallbackTemp* This, REFIID riid, void** ppvObject); ULONG (STDMETHODCALLTYPE *AddRef)( IMemAllocatorNotifyCallbackTemp* This); ULONG (STDMETHODCALLTYPE *Release)( IMemAllocatorNotifyCallbackTemp* This); /*** IMemAllocatorNotifyCallbackTemp methods ***/ HRESULT (STDMETHODCALLTYPE *NotifyRelease)( IMemAllocatorNotifyCallbackTemp* This); }; /*** IUnknown methods ***/ #define IMemAllocatorNotifyCallbackTemp_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) #define IMemAllocatorNotifyCallbackTemp_AddRef(p) (p)->lpVtbl->AddRef(p) #define IMemAllocatorNotifyCallbackTemp_Release(p) (p)->lpVtbl->Release(p) /*** IMemAllocatorNotifyCallbackTemp methods ***/ #define IMemAllocatorNotifyCallbackTemp_NotifyRelease(p) (p)->lpVtbl->NotifyRelease(p) #endif #define IMemAllocatorNotifyCallbackTemp_METHODS \ ICOM_MSVTABLE_COMPAT_FIELDS \ /*** IUnknown methods ***/ \ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \ STDMETHOD_(ULONG,AddRef)(THIS) PURE; \ STDMETHOD_(ULONG,Release)(THIS) PURE; \ /*** IMemAllocatorNotifyCallbackTemp methods ***/ \ STDMETHOD_(HRESULT,NotifyRelease)(THIS) PURE; HRESULT CALLBACK IMemAllocatorNotifyCallbackTemp_NotifyRelease_Proxy( IMemAllocatorNotifyCallbackTemp* This); void __RPC_STUB IMemAllocatorNotifyCallbackTemp_NotifyRelease_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); #endif /* __IMemAllocatorNotifyCallbackTemp_INTERFACE_DEFINED__ */ /***************************************************************************** * IMemInputPin interface */ #ifndef __IMemInputPin_INTERFACE_DEFINED__ #define __IMemInputPin_INTERFACE_DEFINED__ DEFINE_GUID(IID_IMemInputPin, 0x56a8689d, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70); #if defined(__cplusplus) && !defined(CINTERFACE) struct IMemInputPin : public IUnknown { virtual HRESULT STDMETHODCALLTYPE GetAllocator( IMemAllocator** ppAllocator) = 0; virtual HRESULT STDMETHODCALLTYPE NotifyAllocator( IMemAllocator* pAllocator, BOOL bReadOnly) = 0; virtual HRESULT STDMETHODCALLTYPE GetAllocatorRequirements( ALLOCATOR_PROPERTIES* pProps) = 0; virtual HRESULT STDMETHODCALLTYPE Receive( IMediaSample* pSample) = 0; virtual HRESULT STDMETHODCALLTYPE ReceiveMultiple( IMediaSample** pSamples, long nSamples, long* nSamplesProcessed) = 0; virtual HRESULT STDMETHODCALLTYPE ReceiveCanBlock( ) = 0; }; #else typedef struct IMemInputPinVtbl IMemInputPinVtbl; struct IMemInputPin { const IMemInputPinVtbl* lpVtbl; }; struct IMemInputPinVtbl { ICOM_MSVTABLE_COMPAT_FIELDS /*** IUnknown methods ***/ HRESULT (STDMETHODCALLTYPE *QueryInterface)( IMemInputPin* This, REFIID riid, void** ppvObject); ULONG (STDMETHODCALLTYPE *AddRef)( IMemInputPin* This); ULONG (STDMETHODCALLTYPE *Release)( IMemInputPin* This); /*** IMemInputPin methods ***/ HRESULT (STDMETHODCALLTYPE *GetAllocator)( IMemInputPin* This, IMemAllocator** ppAllocator); HRESULT (STDMETHODCALLTYPE *NotifyAllocator)( IMemInputPin* This, IMemAllocator* pAllocator, BOOL bReadOnly); HRESULT (STDMETHODCALLTYPE *GetAllocatorRequirements)( IMemInputPin* This, ALLOCATOR_PROPERTIES* pProps); HRESULT (STDMETHODCALLTYPE *Receive)( IMemInputPin* This, IMediaSample* pSample); HRESULT (STDMETHODCALLTYPE *ReceiveMultiple)( IMemInputPin* This, IMediaSample** pSamples, long nSamples, long* nSamplesProcessed); HRESULT (STDMETHODCALLTYPE *ReceiveCanBlock)( IMemInputPin* This); }; /*** IUnknown methods ***/ #define IMemInputPin_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) #define IMemInputPin_AddRef(p) (p)->lpVtbl->AddRef(p) #define IMemInputPin_Release(p) (p)->lpVtbl->Release(p) /*** IMemInputPin methods ***/ #define IMemInputPin_GetAllocator(p,a) (p)->lpVtbl->GetAllocator(p,a) #define IMemInputPin_NotifyAllocator(p,a,b) (p)->lpVtbl->NotifyAllocator(p,a,b) #define IMemInputPin_GetAllocatorRequirements(p,a) (p)->lpVtbl->GetAllocatorRequirements(p,a) #define IMemInputPin_Receive(p,a) (p)->lpVtbl->Receive(p,a) #define IMemInputPin_ReceiveMultiple(p,a,b,c) (p)->lpVtbl->ReceiveMultiple(p,a,b,c) #define IMemInputPin_ReceiveCanBlock(p) (p)->lpVtbl->ReceiveCanBlock(p) #endif #define IMemInputPin_METHODS \ ICOM_MSVTABLE_COMPAT_FIELDS \ /*** IUnknown methods ***/ \ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \ STDMETHOD_(ULONG,AddRef)(THIS) PURE; \ STDMETHOD_(ULONG,Release)(THIS) PURE; \ /*** IMemInputPin methods ***/ \ STDMETHOD_(HRESULT,GetAllocator)(THIS_ IMemAllocator** ppAllocator) PURE; \ STDMETHOD_(HRESULT,NotifyAllocator)(THIS_ IMemAllocator* pAllocator, BOOL bReadOnly) PURE; \ STDMETHOD_(HRESULT,GetAllocatorRequirements)(THIS_ ALLOCATOR_PROPERTIES* pProps) PURE; \ STDMETHOD_(HRESULT,Receive)(THIS_ IMediaSample* pSample) PURE; \ STDMETHOD_(HRESULT,ReceiveMultiple)(THIS_ IMediaSample** pSamples, long nSamples, long* nSamplesProcessed) PURE; \ STDMETHOD_(HRESULT,ReceiveCanBlock)(THIS) PURE; HRESULT CALLBACK IMemInputPin_GetAllocator_Proxy( IMemInputPin* This, IMemAllocator** ppAllocator); void __RPC_STUB IMemInputPin_GetAllocator_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IMemInputPin_NotifyAllocator_Proxy( IMemInputPin* This, IMemAllocator* pAllocator, BOOL bReadOnly); void __RPC_STUB IMemInputPin_NotifyAllocator_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IMemInputPin_GetAllocatorRequirements_Proxy( IMemInputPin* This, ALLOCATOR_PROPERTIES* pProps); void __RPC_STUB IMemInputPin_GetAllocatorRequirements_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IMemInputPin_Receive_Proxy( IMemInputPin* This, IMediaSample* pSample); void __RPC_STUB IMemInputPin_Receive_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IMemInputPin_ReceiveMultiple_Proxy( IMemInputPin* This, IMediaSample** pSamples, long nSamples, long* nSamplesProcessed); void __RPC_STUB IMemInputPin_ReceiveMultiple_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IMemInputPin_ReceiveCanBlock_Proxy( IMemInputPin* This); void __RPC_STUB IMemInputPin_ReceiveCanBlock_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); #endif /* __IMemInputPin_INTERFACE_DEFINED__ */ typedef IMemInputPin *PMEMINPUTPIN; /***************************************************************************** * IAMovieSetup interface */ #ifndef __IAMovieSetup_INTERFACE_DEFINED__ #define __IAMovieSetup_INTERFACE_DEFINED__ DEFINE_GUID(IID_IAMovieSetup, 0xa3d8cec0, 0x7e5a, 0x11cf, 0xbb,0xc5, 0x00,0x80,0x5f,0x6c,0xef,0x20); #if defined(__cplusplus) && !defined(CINTERFACE) struct IAMovieSetup : public IUnknown { virtual HRESULT STDMETHODCALLTYPE Register( ) = 0; virtual HRESULT STDMETHODCALLTYPE Unregister( ) = 0; }; #else typedef struct IAMovieSetupVtbl IAMovieSetupVtbl; struct IAMovieSetup { const IAMovieSetupVtbl* lpVtbl; }; struct IAMovieSetupVtbl { ICOM_MSVTABLE_COMPAT_FIELDS /*** IUnknown methods ***/ HRESULT (STDMETHODCALLTYPE *QueryInterface)( IAMovieSetup* This, REFIID riid, void** ppvObject); ULONG (STDMETHODCALLTYPE *AddRef)( IAMovieSetup* This); ULONG (STDMETHODCALLTYPE *Release)( IAMovieSetup* This); /*** IAMovieSetup methods ***/ HRESULT (STDMETHODCALLTYPE *Register)( IAMovieSetup* This); HRESULT (STDMETHODCALLTYPE *Unregister)( IAMovieSetup* This); }; /*** IUnknown methods ***/ #define IAMovieSetup_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) #define IAMovieSetup_AddRef(p) (p)->lpVtbl->AddRef(p) #define IAMovieSetup_Release(p) (p)->lpVtbl->Release(p) /*** IAMovieSetup methods ***/ #define IAMovieSetup_Register(p) (p)->lpVtbl->Register(p) #define IAMovieSetup_Unregister(p) (p)->lpVtbl->Unregister(p) #endif #define IAMovieSetup_METHODS \ ICOM_MSVTABLE_COMPAT_FIELDS \ /*** IUnknown methods ***/ \ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \ STDMETHOD_(ULONG,AddRef)(THIS) PURE; \ STDMETHOD_(ULONG,Release)(THIS) PURE; \ /*** IAMovieSetup methods ***/ \ STDMETHOD_(HRESULT,Register)(THIS) PURE; \ STDMETHOD_(HRESULT,Unregister)(THIS) PURE; HRESULT CALLBACK IAMovieSetup_Register_Proxy( IAMovieSetup* This); void __RPC_STUB IAMovieSetup_Register_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IAMovieSetup_Unregister_Proxy( IAMovieSetup* This); void __RPC_STUB IAMovieSetup_Unregister_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); #endif /* __IAMovieSetup_INTERFACE_DEFINED__ */ typedef IAMovieSetup *PAMOVIESETUP; typedef enum AM_SEEKING_SeekingFlags { AM_SEEKING_NoPositioning = 0x0, AM_SEEKING_AbsolutePositioning = 0x1, AM_SEEKING_RelativePositioning = 0x2, AM_SEEKING_IncrementalPositioning = 0x3, AM_SEEKING_PositioningBitsMask = 0x3, AM_SEEKING_SeekToKeyFrame = 0x4, AM_SEEKING_ReturnTime = 0x8, AM_SEEKING_Segment = 0x10, AM_SEEKING_NoFlush = 0x20 } AM_SEEKING_SEEKING_FLAGS; typedef enum AM_SEEKING_SeekingCapabilities { AM_SEEKING_CanSeekAbsolute = 0x1, AM_SEEKING_CanSeekForwards = 0x2, AM_SEEKING_CanSeekBackwards = 0x4, AM_SEEKING_CanGetCurrentPos = 0x8, AM_SEEKING_CanGetStopPos = 0x10, AM_SEEKING_CanGetDuration = 0x20, AM_SEEKING_CanPlayBackwards = 0x40, AM_SEEKING_CanDoSegments = 0x80, AM_SEEKING_Source = 0x100 } AM_SEEKING_SEEKING_CAPABILITIES; #ifndef __IMediaSeeking_FWD_DEFINED__ #define __IMediaSeeking_FWD_DEFINED__ typedef struct IMediaSeeking IMediaSeeking; #endif /***************************************************************************** * IMediaSeeking interface */ #ifndef __IMediaSeeking_INTERFACE_DEFINED__ #define __IMediaSeeking_INTERFACE_DEFINED__ DEFINE_GUID(IID_IMediaSeeking, 0x36b73880, 0xc2c8, 0x11cf, 0x8b,0x46, 0x00,0x80,0x5f,0x6c,0xef,0x60); #if defined(__cplusplus) && !defined(CINTERFACE) struct IMediaSeeking : public IUnknown { virtual HRESULT STDMETHODCALLTYPE GetCapabilities( DWORD* pCapabilities) = 0; virtual HRESULT STDMETHODCALLTYPE CheckCapabilities( DWORD* pCapabilities) = 0; virtual HRESULT STDMETHODCALLTYPE IsFormatSupported( const GUID* pFormat) = 0; virtual HRESULT STDMETHODCALLTYPE QueryPreferredFormat( GUID* pFormat) = 0; virtual HRESULT STDMETHODCALLTYPE GetTimeFormat( GUID* pFormat) = 0; virtual HRESULT STDMETHODCALLTYPE IsUsingTimeFormat( const GUID* pFormat) = 0; virtual HRESULT STDMETHODCALLTYPE SetTimeFormat( const GUID* pFormat) = 0; virtual HRESULT STDMETHODCALLTYPE GetDuration( LONGLONG* pDuration) = 0; virtual HRESULT STDMETHODCALLTYPE GetStopPosition( LONGLONG* pStop) = 0; virtual HRESULT STDMETHODCALLTYPE GetCurrentPosition( LONGLONG* pCurrent) = 0; virtual HRESULT STDMETHODCALLTYPE ConvertTimeFormat( LONGLONG* pTarget, const GUID* pTargetFormat, LONGLONG Source, const GUID* pSourceFormat) = 0; virtual HRESULT STDMETHODCALLTYPE SetPositions( LONGLONG* pCurrent, DWORD dwCurrentFlags, LONGLONG* pStop, DWORD dwStopFlags) = 0; virtual HRESULT STDMETHODCALLTYPE GetPositions( LONGLONG* pCurrent, LONGLONG* pStop) = 0; virtual HRESULT STDMETHODCALLTYPE GetAvailable( LONGLONG* pEarliest, LONGLONG* pLatest) = 0; virtual HRESULT STDMETHODCALLTYPE SetRate( double dRate) = 0; virtual HRESULT STDMETHODCALLTYPE GetRate( double* pdRate) = 0; virtual HRESULT STDMETHODCALLTYPE GetPreroll( LONGLONG* pllPreroll) = 0; }; #else typedef struct IMediaSeekingVtbl IMediaSeekingVtbl; struct IMediaSeeking { const IMediaSeekingVtbl* lpVtbl; }; struct IMediaSeekingVtbl { ICOM_MSVTABLE_COMPAT_FIELDS /*** IUnknown methods ***/ HRESULT (STDMETHODCALLTYPE *QueryInterface)( IMediaSeeking* This, REFIID riid, void** ppvObject); ULONG (STDMETHODCALLTYPE *AddRef)( IMediaSeeking* This); ULONG (STDMETHODCALLTYPE *Release)( IMediaSeeking* This); /*** IMediaSeeking methods ***/ HRESULT (STDMETHODCALLTYPE *GetCapabilities)( IMediaSeeking* This, DWORD* pCapabilities); HRESULT (STDMETHODCALLTYPE *CheckCapabilities)( IMediaSeeking* This, DWORD* pCapabilities); HRESULT (STDMETHODCALLTYPE *IsFormatSupported)( IMediaSeeking* This, const GUID* pFormat); HRESULT (STDMETHODCALLTYPE *QueryPreferredFormat)( IMediaSeeking* This, GUID* pFormat); HRESULT (STDMETHODCALLTYPE *GetTimeFormat)( IMediaSeeking* This, GUID* pFormat); HRESULT (STDMETHODCALLTYPE *IsUsingTimeFormat)( IMediaSeeking* This, const GUID* pFormat); HRESULT (STDMETHODCALLTYPE *SetTimeFormat)( IMediaSeeking* This, const GUID* pFormat); HRESULT (STDMETHODCALLTYPE *GetDuration)( IMediaSeeking* This, LONGLONG* pDuration); HRESULT (STDMETHODCALLTYPE *GetStopPosition)( IMediaSeeking* This, LONGLONG* pStop); HRESULT (STDMETHODCALLTYPE *GetCurrentPosition)( IMediaSeeking* This, LONGLONG* pCurrent); HRESULT (STDMETHODCALLTYPE *ConvertTimeFormat)( IMediaSeeking* This, LONGLONG* pTarget, const GUID* pTargetFormat, LONGLONG Source, const GUID* pSourceFormat); HRESULT (STDMETHODCALLTYPE *SetPositions)( IMediaSeeking* This, LONGLONG* pCurrent, DWORD dwCurrentFlags, LONGLONG* pStop, DWORD dwStopFlags); HRESULT (STDMETHODCALLTYPE *GetPositions)( IMediaSeeking* This, LONGLONG* pCurrent, LONGLONG* pStop); HRESULT (STDMETHODCALLTYPE *GetAvailable)( IMediaSeeking* This, LONGLONG* pEarliest, LONGLONG* pLatest); HRESULT (STDMETHODCALLTYPE *SetRate)( IMediaSeeking* This, double dRate); HRESULT (STDMETHODCALLTYPE *GetRate)( IMediaSeeking* This, double* pdRate); HRESULT (STDMETHODCALLTYPE *GetPreroll)( IMediaSeeking* This, LONGLONG* pllPreroll); }; /*** IUnknown methods ***/ #define IMediaSeeking_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) #define IMediaSeeking_AddRef(p) (p)->lpVtbl->AddRef(p) #define IMediaSeeking_Release(p) (p)->lpVtbl->Release(p) /*** IMediaSeeking methods ***/ #define IMediaSeeking_GetCapabilities(p,a) (p)->lpVtbl->GetCapabilities(p,a) #define IMediaSeeking_CheckCapabilities(p,a) (p)->lpVtbl->CheckCapabilities(p,a) #define IMediaSeeking_IsFormatSupported(p,a) (p)->lpVtbl->IsFormatSupported(p,a) #define IMediaSeeking_QueryPreferredFormat(p,a) (p)->lpVtbl->QueryPreferredFormat(p,a) #define IMediaSeeking_GetTimeFormat(p,a) (p)->lpVtbl->GetTimeFormat(p,a) #define IMediaSeeking_IsUsingTimeFormat(p,a) (p)->lpVtbl->IsUsingTimeFormat(p,a) #define IMediaSeeking_SetTimeFormat(p,a) (p)->lpVtbl->SetTimeFormat(p,a) #define IMediaSeeking_GetDuration(p,a) (p)->lpVtbl->GetDuration(p,a) #define IMediaSeeking_GetStopPosition(p,a) (p)->lpVtbl->GetStopPosition(p,a) #define IMediaSeeking_GetCurrentPosition(p,a) (p)->lpVtbl->GetCurrentPosition(p,a) #define IMediaSeeking_ConvertTimeFormat(p,a,b,c,d) (p)->lpVtbl->ConvertTimeFormat(p,a,b,c,d) #define IMediaSeeking_SetPositions(p,a,b,c,d) (p)->lpVtbl->SetPositions(p,a,b,c,d) #define IMediaSeeking_GetPositions(p,a,b) (p)->lpVtbl->GetPositions(p,a,b) #define IMediaSeeking_GetAvailable(p,a,b) (p)->lpVtbl->GetAvailable(p,a,b) #define IMediaSeeking_SetRate(p,a) (p)->lpVtbl->SetRate(p,a) #define IMediaSeeking_GetRate(p,a) (p)->lpVtbl->GetRate(p,a) #define IMediaSeeking_GetPreroll(p,a) (p)->lpVtbl->GetPreroll(p,a) #endif #define IMediaSeeking_METHODS \ ICOM_MSVTABLE_COMPAT_FIELDS \ /*** IUnknown methods ***/ \ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \ STDMETHOD_(ULONG,AddRef)(THIS) PURE; \ STDMETHOD_(ULONG,Release)(THIS) PURE; \ /*** IMediaSeeking methods ***/ \ STDMETHOD_(HRESULT,GetCapabilities)(THIS_ DWORD* pCapabilities) PURE; \ STDMETHOD_(HRESULT,CheckCapabilities)(THIS_ DWORD* pCapabilities) PURE; \ STDMETHOD_(HRESULT,IsFormatSupported)(THIS_ const GUID* pFormat) PURE; \ STDMETHOD_(HRESULT,QueryPreferredFormat)(THIS_ GUID* pFormat) PURE; \ STDMETHOD_(HRESULT,GetTimeFormat)(THIS_ GUID* pFormat) PURE; \ STDMETHOD_(HRESULT,IsUsingTimeFormat)(THIS_ const GUID* pFormat) PURE; \ STDMETHOD_(HRESULT,SetTimeFormat)(THIS_ const GUID* pFormat) PURE; \ STDMETHOD_(HRESULT,GetDuration)(THIS_ LONGLONG* pDuration) PURE; \ STDMETHOD_(HRESULT,GetStopPosition)(THIS_ LONGLONG* pStop) PURE; \ STDMETHOD_(HRESULT,GetCurrentPosition)(THIS_ LONGLONG* pCurrent) PURE; \ STDMETHOD_(HRESULT,ConvertTimeFormat)(THIS_ LONGLONG* pTarget, const GUID* pTargetFormat, LONGLONG Source, const GUID* pSourceFormat) PURE; \ STDMETHOD_(HRESULT,SetPositions)(THIS_ LONGLONG* pCurrent, DWORD dwCurrentFlags, LONGLONG* pStop, DWORD dwStopFlags) PURE; \ STDMETHOD_(HRESULT,GetPositions)(THIS_ LONGLONG* pCurrent, LONGLONG* pStop) PURE; \ STDMETHOD_(HRESULT,GetAvailable)(THIS_ LONGLONG* pEarliest, LONGLONG* pLatest) PURE; \ STDMETHOD_(HRESULT,SetRate)(THIS_ double dRate) PURE; \ STDMETHOD_(HRESULT,GetRate)(THIS_ double* pdRate) PURE; \ STDMETHOD_(HRESULT,GetPreroll)(THIS_ LONGLONG* pllPreroll) PURE; HRESULT CALLBACK IMediaSeeking_GetCapabilities_Proxy( IMediaSeeking* This, DWORD* pCapabilities); void __RPC_STUB IMediaSeeking_GetCapabilities_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IMediaSeeking_CheckCapabilities_Proxy( IMediaSeeking* This, DWORD* pCapabilities); void __RPC_STUB IMediaSeeking_CheckCapabilities_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IMediaSeeking_IsFormatSupported_Proxy( IMediaSeeking* This, const GUID* pFormat); void __RPC_STUB IMediaSeeking_IsFormatSupported_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IMediaSeeking_QueryPreferredFormat_Proxy( IMediaSeeking* This, GUID* pFormat); void __RPC_STUB IMediaSeeking_QueryPreferredFormat_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IMediaSeeking_GetTimeFormat_Proxy( IMediaSeeking* This, GUID* pFormat); void __RPC_STUB IMediaSeeking_GetTimeFormat_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IMediaSeeking_IsUsingTimeFormat_Proxy( IMediaSeeking* This, const GUID* pFormat); void __RPC_STUB IMediaSeeking_IsUsingTimeFormat_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IMediaSeeking_SetTimeFormat_Proxy( IMediaSeeking* This, const GUID* pFormat); void __RPC_STUB IMediaSeeking_SetTimeFormat_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IMediaSeeking_GetDuration_Proxy( IMediaSeeking* This, LONGLONG* pDuration); void __RPC_STUB IMediaSeeking_GetDuration_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IMediaSeeking_GetStopPosition_Proxy( IMediaSeeking* This, LONGLONG* pStop); void __RPC_STUB IMediaSeeking_GetStopPosition_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IMediaSeeking_GetCurrentPosition_Proxy( IMediaSeeking* This, LONGLONG* pCurrent); void __RPC_STUB IMediaSeeking_GetCurrentPosition_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IMediaSeeking_ConvertTimeFormat_Proxy( IMediaSeeking* This, LONGLONG* pTarget, const GUID* pTargetFormat, LONGLONG Source, const GUID* pSourceFormat); void __RPC_STUB IMediaSeeking_ConvertTimeFormat_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IMediaSeeking_SetPositions_Proxy( IMediaSeeking* This, LONGLONG* pCurrent, DWORD dwCurrentFlags, LONGLONG* pStop, DWORD dwStopFlags); void __RPC_STUB IMediaSeeking_SetPositions_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IMediaSeeking_GetPositions_Proxy( IMediaSeeking* This, LONGLONG* pCurrent, LONGLONG* pStop); void __RPC_STUB IMediaSeeking_GetPositions_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IMediaSeeking_GetAvailable_Proxy( IMediaSeeking* This, LONGLONG* pEarliest, LONGLONG* pLatest); void __RPC_STUB IMediaSeeking_GetAvailable_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IMediaSeeking_SetRate_Proxy( IMediaSeeking* This, double dRate); void __RPC_STUB IMediaSeeking_SetRate_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IMediaSeeking_GetRate_Proxy( IMediaSeeking* This, double* pdRate); void __RPC_STUB IMediaSeeking_GetRate_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IMediaSeeking_GetPreroll_Proxy( IMediaSeeking* This, LONGLONG* pllPreroll); void __RPC_STUB IMediaSeeking_GetPreroll_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); #endif /* __IMediaSeeking_INTERFACE_DEFINED__ */ typedef IMediaSeeking *PMEDIASEEKING; enum tagAM_MEDIAEVENT_FLAGS { AM_MEDIAEVENT_NONOTIFY = 0x1 }; #ifndef __IAMAnalogVideoDecoder_FWD_DEFINED__ #define __IAMAnalogVideoDecoder_FWD_DEFINED__ typedef struct IAMAnalogVideoDecoder IAMAnalogVideoDecoder; #endif #ifndef __IAMAnalogVideoEncoder_FWD_DEFINED__ #define __IAMAnalogVideoEncoder_FWD_DEFINED__ typedef struct IAMAnalogVideoEncoder IAMAnalogVideoEncoder; #endif #ifndef __IAMAudioInputMixer_FWD_DEFINED__ #define __IAMAudioInputMixer_FWD_DEFINED__ typedef struct IAMAudioInputMixer IAMAudioInputMixer; #endif #ifndef __IAMAudioRendererStats_FWD_DEFINED__ #define __IAMAudioRendererStats_FWD_DEFINED__ typedef struct IAMAudioRendererStats IAMAudioRendererStats; #endif #ifndef __IAMBufferNegotiation_FWD_DEFINED__ #define __IAMBufferNegotiation_FWD_DEFINED__ typedef struct IAMBufferNegotiation IAMBufferNegotiation; #endif #ifndef __IAMCameraControl_FWD_DEFINED__ #define __IAMCameraControl_FWD_DEFINED__ typedef struct IAMCameraControl IAMCameraControl; #endif #ifndef __IAMCopyCaptureFileProgress_FWD_DEFINED__ #define __IAMCopyCaptureFileProgress_FWD_DEFINED__ typedef struct IAMCopyCaptureFileProgress IAMCopyCaptureFileProgress; #endif #ifndef __IAMCrossbar_FWD_DEFINED__ #define __IAMCrossbar_FWD_DEFINED__ typedef struct IAMCrossbar IAMCrossbar; #endif #ifndef __IAMDevMemoryAllocator_FWD_DEFINED__ #define __IAMDevMemoryAllocator_FWD_DEFINED__ typedef struct IAMDevMemoryAllocator IAMDevMemoryAllocator; #endif #ifndef __IAMDevMemoryControl_FWD_DEFINED__ #define __IAMDevMemoryControl_FWD_DEFINED__ typedef struct IAMDevMemoryControl IAMDevMemoryControl; #endif #ifndef __IAMDroppedFrames_FWD_DEFINED__ #define __IAMDroppedFrames_FWD_DEFINED__ typedef struct IAMDroppedFrames IAMDroppedFrames; #endif #ifndef __IAMExtDevice_FWD_DEFINED__ #define __IAMExtDevice_FWD_DEFINED__ typedef struct IAMExtDevice IAMExtDevice; #endif #ifndef __IAMExtTransport_FWD_DEFINED__ #define __IAMExtTransport_FWD_DEFINED__ typedef struct IAMExtTransport IAMExtTransport; #endif #ifndef __IAMGraphStreams_FWD_DEFINED__ #define __IAMGraphStreams_FWD_DEFINED__ typedef struct IAMGraphStreams IAMGraphStreams; #endif #ifndef __IAMLatency_FWD_DEFINED__ #define __IAMLatency_FWD_DEFINED__ typedef struct IAMLatency IAMLatency; #endif #ifndef __IAMOpenProgress_FWD_DEFINED__ #define __IAMOpenProgress_FWD_DEFINED__ typedef struct IAMOpenProgress IAMOpenProgress; #endif #ifndef __IAMOverlayFX_FWD_DEFINED__ #define __IAMOverlayFX_FWD_DEFINED__ typedef struct IAMOverlayFX IAMOverlayFX; #endif #ifndef __IAMPhysicalPinInfo_FWD_DEFINED__ #define __IAMPhysicalPinInfo_FWD_DEFINED__ typedef struct IAMPhysicalPinInfo IAMPhysicalPinInfo; #endif #ifndef __IAMPushSource_FWD_DEFINED__ #define __IAMPushSource_FWD_DEFINED__ typedef struct IAMPushSource IAMPushSource; #endif #ifndef __IAMStreamConfig_FWD_DEFINED__ #define __IAMStreamConfig_FWD_DEFINED__ typedef struct IAMStreamConfig IAMStreamConfig; #endif #ifndef __IAMTimecodeDisplay_FWD_DEFINED__ #define __IAMTimecodeDisplay_FWD_DEFINED__ typedef struct IAMTimecodeDisplay IAMTimecodeDisplay; #endif #ifndef __IAMTimecodeGenerator_FWD_DEFINED__ #define __IAMTimecodeGenerator_FWD_DEFINED__ typedef struct IAMTimecodeGenerator IAMTimecodeGenerator; #endif #ifndef __IAMTimecodeReader_FWD_DEFINED__ #define __IAMTimecodeReader_FWD_DEFINED__ typedef struct IAMTimecodeReader IAMTimecodeReader; #endif #ifndef __IAMTVTuner_FWD_DEFINED__ #define __IAMTVTuner_FWD_DEFINED__ typedef struct IAMTVTuner IAMTVTuner; #endif #ifndef __IAMVfwCaptureDialogs_FWD_DEFINED__ #define __IAMVfwCaptureDialogs_FWD_DEFINED__ typedef struct IAMVfwCaptureDialogs IAMVfwCaptureDialogs; #endif #ifndef __IAMVfwCompressDialogs_FWD_DEFINED__ #define __IAMVfwCompressDialogs_FWD_DEFINED__ typedef struct IAMVfwCompressDialogs IAMVfwCompressDialogs; #endif #ifndef __IAMVideoCompression_FWD_DEFINED__ #define __IAMVideoCompression_FWD_DEFINED__ typedef struct IAMVideoCompression IAMVideoCompression; #endif #ifndef __IAMVideoDecimationProperties_FWD_DEFINED__ #define __IAMVideoDecimationProperties_FWD_DEFINED__ typedef struct IAMVideoDecimationProperties IAMVideoDecimationProperties; #endif #ifndef __IAMVideoProcAmp_FWD_DEFINED__ #define __IAMVideoProcAmp_FWD_DEFINED__ typedef struct IAMVideoProcAmp IAMVideoProcAmp; #endif #ifndef __ICaptureGraphBuilder_FWD_DEFINED__ #define __ICaptureGraphBuilder_FWD_DEFINED__ typedef struct ICaptureGraphBuilder ICaptureGraphBuilder; #endif #ifndef __ICaptureGraphBuilder2_FWD_DEFINED__ #define __ICaptureGraphBuilder2_FWD_DEFINED__ typedef struct ICaptureGraphBuilder2 ICaptureGraphBuilder2; #endif #ifndef __IConfigAviMux_FWD_DEFINED__ #define __IConfigAviMux_FWD_DEFINED__ typedef struct IConfigAviMux IConfigAviMux; #endif #ifndef __IConfigInterleaving_FWD_DEFINED__ #define __IConfigInterleaving_FWD_DEFINED__ typedef struct IConfigInterleaving IConfigInterleaving; #endif #ifndef __IDecimateVideoImage_FWD_DEFINED__ #define __IDecimateVideoImage_FWD_DEFINED__ typedef struct IDecimateVideoImage IDecimateVideoImage; #endif #ifndef __IDrawVideoImage_FWD_DEFINED__ #define __IDrawVideoImage_FWD_DEFINED__ typedef struct IDrawVideoImage IDrawVideoImage; #endif #ifndef __IEnumRegFilters_FWD_DEFINED__ #define __IEnumRegFilters_FWD_DEFINED__ typedef struct IEnumRegFilters IEnumRegFilters; #endif #ifndef __IEnumStreamIdMap_FWD_DEFINED__ #define __IEnumStreamIdMap_FWD_DEFINED__ typedef struct IEnumStreamIdMap IEnumStreamIdMap; #endif #ifndef __IFileSourceFilter_FWD_DEFINED__ #define __IFileSourceFilter_FWD_DEFINED__ typedef struct IFileSourceFilter IFileSourceFilter; #endif #ifndef __IFileSinkFilter_FWD_DEFINED__ #define __IFileSinkFilter_FWD_DEFINED__ typedef struct IFileSinkFilter IFileSinkFilter; #endif #ifndef __IFileSinkFilter2_FWD_DEFINED__ #define __IFileSinkFilter2_FWD_DEFINED__ typedef struct IFileSinkFilter2 IFileSinkFilter2; #endif #ifndef __IFilterMapper_FWD_DEFINED__ #define __IFilterMapper_FWD_DEFINED__ typedef struct IFilterMapper IFilterMapper; #endif #ifndef __IFilterMapper2_FWD_DEFINED__ #define __IFilterMapper2_FWD_DEFINED__ typedef struct IFilterMapper2 IFilterMapper2; #endif #ifndef __IGraphBuilder_FWD_DEFINED__ #define __IGraphBuilder_FWD_DEFINED__ typedef struct IGraphBuilder IGraphBuilder; #endif #ifndef __IKsPropertySet_FWD_DEFINED__ #define __IKsPropertySet_FWD_DEFINED__ typedef struct IKsPropertySet IKsPropertySet; #endif #ifndef __IMediaEventSink_FWD_DEFINED__ #define __IMediaEventSink_FWD_DEFINED__ typedef struct IMediaEventSink IMediaEventSink; #endif #ifndef __IMpeg2Demultiplexer_FWD_DEFINED__ #define __IMpeg2Demultiplexer_FWD_DEFINED__ typedef struct IMpeg2Demultiplexer IMpeg2Demultiplexer; #endif #ifndef __IMPEG2StreamIdMap_FWD_DEFINED__ #define __IMPEG2StreamIdMap_FWD_DEFINED__ typedef struct IMPEG2StreamIdMap IMPEG2StreamIdMap; #endif #ifndef __IOverlay_FWD_DEFINED__ #define __IOverlay_FWD_DEFINED__ typedef struct IOverlay IOverlay; #endif #ifndef __IOverlayNotify_FWD_DEFINED__ #define __IOverlayNotify_FWD_DEFINED__ typedef struct IOverlayNotify IOverlayNotify; #endif #ifndef __IOverlayNotify2_FWD_DEFINED__ #define __IOverlayNotify2_FWD_DEFINED__ typedef struct IOverlayNotify2 IOverlayNotify2; #endif #ifndef __IQualityControl_FWD_DEFINED__ #define __IQualityControl_FWD_DEFINED__ typedef struct IQualityControl IQualityControl; #endif #ifndef __ISeekingPassThru_FWD_DEFINED__ #define __ISeekingPassThru_FWD_DEFINED__ typedef struct ISeekingPassThru ISeekingPassThru; #endif typedef struct { CLSID Clsid; LPWSTR Name; } REGFILTER; /***************************************************************************** * IEnumRegFilters interface */ #ifndef __IEnumRegFilters_INTERFACE_DEFINED__ #define __IEnumRegFilters_INTERFACE_DEFINED__ DEFINE_GUID(IID_IEnumRegFilters, 0x56a868a4, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70); #if defined(__cplusplus) && !defined(CINTERFACE) struct IEnumRegFilters : public IUnknown { virtual HRESULT STDMETHODCALLTYPE Next( ULONG cFilters, REGFILTER** apRegFilter, ULONG* pcFetched) = 0; virtual HRESULT STDMETHODCALLTYPE Skip( ULONG cFilters) = 0; virtual HRESULT STDMETHODCALLTYPE Reset( ) = 0; virtual HRESULT STDMETHODCALLTYPE Clone( IEnumRegFilters** ppEnum) = 0; }; #else typedef struct IEnumRegFiltersVtbl IEnumRegFiltersVtbl; struct IEnumRegFilters { const IEnumRegFiltersVtbl* lpVtbl; }; struct IEnumRegFiltersVtbl { ICOM_MSVTABLE_COMPAT_FIELDS /*** IUnknown methods ***/ HRESULT (STDMETHODCALLTYPE *QueryInterface)( IEnumRegFilters* This, REFIID riid, void** ppvObject); ULONG (STDMETHODCALLTYPE *AddRef)( IEnumRegFilters* This); ULONG (STDMETHODCALLTYPE *Release)( IEnumRegFilters* This); /*** IEnumRegFilters methods ***/ HRESULT (STDMETHODCALLTYPE *Next)( IEnumRegFilters* This, ULONG cFilters, REGFILTER** apRegFilter, ULONG* pcFetched); HRESULT (STDMETHODCALLTYPE *Skip)( IEnumRegFilters* This, ULONG cFilters); HRESULT (STDMETHODCALLTYPE *Reset)( IEnumRegFilters* This); HRESULT (STDMETHODCALLTYPE *Clone)( IEnumRegFilters* This, IEnumRegFilters** ppEnum); }; /*** IUnknown methods ***/ #define IEnumRegFilters_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) #define IEnumRegFilters_AddRef(p) (p)->lpVtbl->AddRef(p) #define IEnumRegFilters_Release(p) (p)->lpVtbl->Release(p) /*** IEnumRegFilters methods ***/ #define IEnumRegFilters_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c) #define IEnumRegFilters_Skip(p,a) (p)->lpVtbl->Skip(p,a) #define IEnumRegFilters_Reset(p) (p)->lpVtbl->Reset(p) #define IEnumRegFilters_Clone(p,a) (p)->lpVtbl->Clone(p,a) #endif #define IEnumRegFilters_METHODS \ ICOM_MSVTABLE_COMPAT_FIELDS \ /*** IUnknown methods ***/ \ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \ STDMETHOD_(ULONG,AddRef)(THIS) PURE; \ STDMETHOD_(ULONG,Release)(THIS) PURE; \ /*** IEnumRegFilters methods ***/ \ STDMETHOD_(HRESULT,Next)(THIS_ ULONG cFilters, REGFILTER** apRegFilter, ULONG* pcFetched) PURE; \ STDMETHOD_(HRESULT,Skip)(THIS_ ULONG cFilters) PURE; \ STDMETHOD_(HRESULT,Reset)(THIS) PURE; \ STDMETHOD_(HRESULT,Clone)(THIS_ IEnumRegFilters** ppEnum) PURE; HRESULT CALLBACK IEnumRegFilters_Next_Proxy( IEnumRegFilters* This, ULONG cFilters, REGFILTER** apRegFilter, ULONG* pcFetched); void __RPC_STUB IEnumRegFilters_Next_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IEnumRegFilters_Skip_Proxy( IEnumRegFilters* This, ULONG cFilters); void __RPC_STUB IEnumRegFilters_Skip_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IEnumRegFilters_Reset_Proxy( IEnumRegFilters* This); void __RPC_STUB IEnumRegFilters_Reset_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IEnumRegFilters_Clone_Proxy( IEnumRegFilters* This, IEnumRegFilters** ppEnum); void __RPC_STUB IEnumRegFilters_Clone_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); #endif /* __IEnumRegFilters_INTERFACE_DEFINED__ */ typedef IEnumRegFilters *PENUMREGFILTERS; enum { MERIT_PREFERRED = 0x800000, MERIT_NORMAL = 0x600000, MERIT_UNLIKELY = 0x400000, MERIT_DO_NOT_USE = 0x200000, MERIT_SW_COMPRESSOR = 0x100000, MERIT_HW_COMPRESSOR = 0x100050 }; /***************************************************************************** * IFilterMapper interface */ #ifndef __IFilterMapper_INTERFACE_DEFINED__ #define __IFilterMapper_INTERFACE_DEFINED__ DEFINE_GUID(IID_IFilterMapper, 0x56a868a3, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70); #if defined(__cplusplus) && !defined(CINTERFACE) struct IFilterMapper : public IUnknown { virtual HRESULT STDMETHODCALLTYPE RegisterFilter( CLSID clsid, LPCWSTR Name, DWORD dwMerit) = 0; virtual HRESULT STDMETHODCALLTYPE RegisterFilterInstance( CLSID clsid, LPCWSTR Name, CLSID* MRId) = 0; virtual HRESULT STDMETHODCALLTYPE RegisterPin( CLSID Filter, LPCWSTR Name, BOOL bRendered, BOOL bOutput, BOOL bZero, BOOL bMany, CLSID ConnectsToFilter, LPCWSTR ConnectsToPin) = 0; virtual HRESULT STDMETHODCALLTYPE RegisterPinType( CLSID clsFilter, LPCWSTR strName, CLSID clsMajorType, CLSID clsSubType) = 0; virtual HRESULT STDMETHODCALLTYPE UnregisterFilter( CLSID Filter) = 0; virtual HRESULT STDMETHODCALLTYPE UnregisterFilterInstance( CLSID MRId) = 0; virtual HRESULT STDMETHODCALLTYPE UnregisterPin( CLSID Filter, LPCWSTR Name) = 0; virtual HRESULT STDMETHODCALLTYPE EnumMatchingFilters( IEnumRegFilters** ppEnum, DWORD dwMerit, BOOL bInputNeeded, CLSID clsInMaj, CLSID clsInSub, BOOL bRender, BOOL bOututNeeded, CLSID clsOutMaj, CLSID clsOutSub) = 0; }; #else typedef struct IFilterMapperVtbl IFilterMapperVtbl; struct IFilterMapper { const IFilterMapperVtbl* lpVtbl; }; struct IFilterMapperVtbl { ICOM_MSVTABLE_COMPAT_FIELDS /*** IUnknown methods ***/ HRESULT (STDMETHODCALLTYPE *QueryInterface)( IFilterMapper* This, REFIID riid, void** ppvObject); ULONG (STDMETHODCALLTYPE *AddRef)( IFilterMapper* This); ULONG (STDMETHODCALLTYPE *Release)( IFilterMapper* This); /*** IFilterMapper methods ***/ HRESULT (STDMETHODCALLTYPE *RegisterFilter)( IFilterMapper* This, CLSID clsid, LPCWSTR Name, DWORD dwMerit); HRESULT (STDMETHODCALLTYPE *RegisterFilterInstance)( IFilterMapper* This, CLSID clsid, LPCWSTR Name, CLSID* MRId); HRESULT (STDMETHODCALLTYPE *RegisterPin)( IFilterMapper* This, CLSID Filter, LPCWSTR Name, BOOL bRendered, BOOL bOutput, BOOL bZero, BOOL bMany, CLSID ConnectsToFilter, LPCWSTR ConnectsToPin); HRESULT (STDMETHODCALLTYPE *RegisterPinType)( IFilterMapper* This, CLSID clsFilter, LPCWSTR strName, CLSID clsMajorType, CLSID clsSubType); HRESULT (STDMETHODCALLTYPE *UnregisterFilter)( IFilterMapper* This, CLSID Filter); HRESULT (STDMETHODCALLTYPE *UnregisterFilterInstance)( IFilterMapper* This, CLSID MRId); HRESULT (STDMETHODCALLTYPE *UnregisterPin)( IFilterMapper* This, CLSID Filter, LPCWSTR Name); HRESULT (STDMETHODCALLTYPE *EnumMatchingFilters)( IFilterMapper* This, IEnumRegFilters** ppEnum, DWORD dwMerit, BOOL bInputNeeded, CLSID clsInMaj, CLSID clsInSub, BOOL bRender, BOOL bOututNeeded, CLSID clsOutMaj, CLSID clsOutSub); }; /*** IUnknown methods ***/ #define IFilterMapper_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) #define IFilterMapper_AddRef(p) (p)->lpVtbl->AddRef(p) #define IFilterMapper_Release(p) (p)->lpVtbl->Release(p) /*** IFilterMapper methods ***/ #define IFilterMapper_RegisterFilter(p,a,b,c) (p)->lpVtbl->RegisterFilter(p,a,b,c) #define IFilterMapper_RegisterFilterInstance(p,a,b,c) (p)->lpVtbl->RegisterFilterInstance(p,a,b,c) #define IFilterMapper_RegisterPin(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->RegisterPin(p,a,b,c,d,e,f,g,h) #define IFilterMapper_RegisterPinType(p,a,b,c,d) (p)->lpVtbl->RegisterPinType(p,a,b,c,d) #define IFilterMapper_UnregisterFilter(p,a) (p)->lpVtbl->UnregisterFilter(p,a) #define IFilterMapper_UnregisterFilterInstance(p,a) (p)->lpVtbl->UnregisterFilterInstance(p,a) #define IFilterMapper_UnregisterPin(p,a,b) (p)->lpVtbl->UnregisterPin(p,a,b) #define IFilterMapper_EnumMatchingFilters(p,a,b,c,d,e,f,g,h,i) (p)->lpVtbl->EnumMatchingFilters(p,a,b,c,d,e,f,g,h,i) #endif #define IFilterMapper_METHODS \ ICOM_MSVTABLE_COMPAT_FIELDS \ /*** IUnknown methods ***/ \ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \ STDMETHOD_(ULONG,AddRef)(THIS) PURE; \ STDMETHOD_(ULONG,Release)(THIS) PURE; \ /*** IFilterMapper methods ***/ \ STDMETHOD_(HRESULT,RegisterFilter)(THIS_ CLSID clsid, LPCWSTR Name, DWORD dwMerit) PURE; \ STDMETHOD_(HRESULT,RegisterFilterInstance)(THIS_ CLSID clsid, LPCWSTR Name, CLSID* MRId) PURE; \ STDMETHOD_(HRESULT,RegisterPin)(THIS_ CLSID Filter, LPCWSTR Name, BOOL bRendered, BOOL bOutput, BOOL bZero, BOOL bMany, CLSID ConnectsToFilter, LPCWSTR ConnectsToPin) PURE; \ STDMETHOD_(HRESULT,RegisterPinType)(THIS_ CLSID clsFilter, LPCWSTR strName, CLSID clsMajorType, CLSID clsSubType) PURE; \ STDMETHOD_(HRESULT,UnregisterFilter)(THIS_ CLSID Filter) PURE; \ STDMETHOD_(HRESULT,UnregisterFilterInstance)(THIS_ CLSID MRId) PURE; \ STDMETHOD_(HRESULT,UnregisterPin)(THIS_ CLSID Filter, LPCWSTR Name) PURE; \ STDMETHOD_(HRESULT,EnumMatchingFilters)(THIS_ IEnumRegFilters** ppEnum, DWORD dwMerit, BOOL bInputNeeded, CLSID clsInMaj, CLSID clsInSub, BOOL bRender, BOOL bOututNeeded, CLSID clsOutMaj, CLSID clsOutSub) PURE; HRESULT CALLBACK IFilterMapper_RegisterFilter_Proxy( IFilterMapper* This, CLSID clsid, LPCWSTR Name, DWORD dwMerit); void __RPC_STUB IFilterMapper_RegisterFilter_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IFilterMapper_RegisterFilterInstance_Proxy( IFilterMapper* This, CLSID clsid, LPCWSTR Name, CLSID* MRId); void __RPC_STUB IFilterMapper_RegisterFilterInstance_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IFilterMapper_RegisterPin_Proxy( IFilterMapper* This, CLSID Filter, LPCWSTR Name, BOOL bRendered, BOOL bOutput, BOOL bZero, BOOL bMany, CLSID ConnectsToFilter, LPCWSTR ConnectsToPin); void __RPC_STUB IFilterMapper_RegisterPin_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IFilterMapper_RegisterPinType_Proxy( IFilterMapper* This, CLSID clsFilter, LPCWSTR strName, CLSID clsMajorType, CLSID clsSubType); void __RPC_STUB IFilterMapper_RegisterPinType_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IFilterMapper_UnregisterFilter_Proxy( IFilterMapper* This, CLSID Filter); void __RPC_STUB IFilterMapper_UnregisterFilter_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IFilterMapper_UnregisterFilterInstance_Proxy( IFilterMapper* This, CLSID MRId); void __RPC_STUB IFilterMapper_UnregisterFilterInstance_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IFilterMapper_UnregisterPin_Proxy( IFilterMapper* This, CLSID Filter, LPCWSTR Name); void __RPC_STUB IFilterMapper_UnregisterPin_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IFilterMapper_EnumMatchingFilters_Proxy( IFilterMapper* This, IEnumRegFilters** ppEnum, DWORD dwMerit, BOOL bInputNeeded, CLSID clsInMaj, CLSID clsInSub, BOOL bRender, BOOL bOututNeeded, CLSID clsOutMaj, CLSID clsOutSub); void __RPC_STUB IFilterMapper_EnumMatchingFilters_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); #endif /* __IFilterMapper_INTERFACE_DEFINED__ */ typedef struct { const CLSID *clsMajorType; const CLSID *clsMinorType; } REGPINTYPES; typedef struct { LPWSTR strName; BOOL bRendered; BOOL bOutput; BOOL bZero; BOOL bMany; const CLSID *clsConnectsToFilter; const WCHAR *strConnectsToPin; UINT nMediaTypes; const REGPINTYPES *lpMediaType; } REGFILTERPINS; typedef struct { CLSID clsMedium; DWORD dw1; DWORD dw2; } REGPINMEDIUM; enum { REG_PINFLAG_B_ZERO = 0x1, REG_PINFLAG_B_RENDERER = 0x2, REG_PINFLAG_B_MANY = 0x4, REG_PINFLAG_B_OUTPUT = 0x8 }; typedef struct { DWORD dwFlags; UINT cInstances; UINT nMediaTypes; const REGPINTYPES *lpMediaType; UINT nMediums; const REGPINMEDIUM *lpMedium; const CLSID *clsPinCategory; } REGFILTERPINS2; typedef struct { DWORD dwVersion; DWORD dwMerit; union { struct { ULONG cPins; const REGFILTERPINS *rgPins; } DUMMYSTRUCTNAME; struct { ULONG cPins2; const REGFILTERPINS2 *rgPins2; } DUMMYSTRUCTNAME1; } DUMMYUNIONNAME; } REGFILTER2; /***************************************************************************** * IFilterMapper2 interface */ #ifndef __IFilterMapper2_INTERFACE_DEFINED__ #define __IFilterMapper2_INTERFACE_DEFINED__ DEFINE_GUID(IID_IFilterMapper2, 0xb79bb0b0, 0x33c1, 0x11d1, 0xab,0xe1, 0x00,0xa0,0xc9,0x05,0xf3,0x75); #if defined(__cplusplus) && !defined(CINTERFACE) struct IFilterMapper2 : public IUnknown { virtual HRESULT STDMETHODCALLTYPE CreateCategory( REFCLSID clsidCategory, DWORD dwCategoryMerit, LPCWSTR Description) = 0; virtual HRESULT STDMETHODCALLTYPE UnregisterFilter( const CLSID* pclsidCategory, const OLECHAR* szInstance, REFCLSID Filter) = 0; virtual HRESULT STDMETHODCALLTYPE RegisterFilter( REFCLSID clsidFilter, LPCWSTR Name, IMoniker** ppMoniker, const CLSID* pclsidCategory, const OLECHAR* szInstance, const REGFILTER2* prf2) = 0; virtual HRESULT STDMETHODCALLTYPE EnumMatchingFilters( IEnumMoniker** ppEnum, DWORD dwFlags, BOOL bExactMatch, DWORD dwMerit, BOOL bInputNeeded, DWORD cInputTypes, const GUID* pInputTypes, const REGPINMEDIUM* pMedIn, const CLSID* pPinCategoryIn, BOOL bRender, BOOL bOutputNeeded, DWORD cOutputTypes, const GUID* pOutputTypes, const REGPINMEDIUM* pMedOut, const CLSID* pPinCategoryOut) = 0; }; #else typedef struct IFilterMapper2Vtbl IFilterMapper2Vtbl; struct IFilterMapper2 { const IFilterMapper2Vtbl* lpVtbl; }; struct IFilterMapper2Vtbl { ICOM_MSVTABLE_COMPAT_FIELDS /*** IUnknown methods ***/ HRESULT (STDMETHODCALLTYPE *QueryInterface)( IFilterMapper2* This, REFIID riid, void** ppvObject); ULONG (STDMETHODCALLTYPE *AddRef)( IFilterMapper2* This); ULONG (STDMETHODCALLTYPE *Release)( IFilterMapper2* This); /*** IFilterMapper2 methods ***/ HRESULT (STDMETHODCALLTYPE *CreateCategory)( IFilterMapper2* This, REFCLSID clsidCategory, DWORD dwCategoryMerit, LPCWSTR Description); HRESULT (STDMETHODCALLTYPE *UnregisterFilter)( IFilterMapper2* This, const CLSID* pclsidCategory, const OLECHAR* szInstance, REFCLSID Filter); HRESULT (STDMETHODCALLTYPE *RegisterFilter)( IFilterMapper2* This, REFCLSID clsidFilter, LPCWSTR Name, IMoniker** ppMoniker, const CLSID* pclsidCategory, const OLECHAR* szInstance, const REGFILTER2* prf2); HRESULT (STDMETHODCALLTYPE *EnumMatchingFilters)( IFilterMapper2* This, IEnumMoniker** ppEnum, DWORD dwFlags, BOOL bExactMatch, DWORD dwMerit, BOOL bInputNeeded, DWORD cInputTypes, const GUID* pInputTypes, const REGPINMEDIUM* pMedIn, const CLSID* pPinCategoryIn, BOOL bRender, BOOL bOutputNeeded, DWORD cOutputTypes, const GUID* pOutputTypes, const REGPINMEDIUM* pMedOut, const CLSID* pPinCategoryOut); }; /*** IUnknown methods ***/ #define IFilterMapper2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) #define IFilterMapper2_AddRef(p) (p)->lpVtbl->AddRef(p) #define IFilterMapper2_Release(p) (p)->lpVtbl->Release(p) /*** IFilterMapper2 methods ***/ #define IFilterMapper2_CreateCategory(p,a,b,c) (p)->lpVtbl->CreateCategory(p,a,b,c) #define IFilterMapper2_UnregisterFilter(p,a,b,c) (p)->lpVtbl->UnregisterFilter(p,a,b,c) #define IFilterMapper2_RegisterFilter(p,a,b,c,d,e,f) (p)->lpVtbl->RegisterFilter(p,a,b,c,d,e,f) #define IFilterMapper2_EnumMatchingFilters(p,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o) (p)->lpVtbl->EnumMatchingFilters(p,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o) #endif #define IFilterMapper2_METHODS \ ICOM_MSVTABLE_COMPAT_FIELDS \ /*** IUnknown methods ***/ \ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \ STDMETHOD_(ULONG,AddRef)(THIS) PURE; \ STDMETHOD_(ULONG,Release)(THIS) PURE; \ /*** IFilterMapper2 methods ***/ \ STDMETHOD_(HRESULT,CreateCategory)(THIS_ REFCLSID clsidCategory, DWORD dwCategoryMerit, LPCWSTR Description) PURE; \ STDMETHOD_(HRESULT,UnregisterFilter)(THIS_ const CLSID* pclsidCategory, const OLECHAR* szInstance, REFCLSID Filter) PURE; \ STDMETHOD_(HRESULT,RegisterFilter)(THIS_ REFCLSID clsidFilter, LPCWSTR Name, IMoniker** ppMoniker, const CLSID* pclsidCategory, const OLECHAR* szInstance, const REGFILTER2* prf2) PURE; \ STDMETHOD_(HRESULT,EnumMatchingFilters)(THIS_ IEnumMoniker** ppEnum, DWORD dwFlags, BOOL bExactMatch, DWORD dwMerit, BOOL bInputNeeded, DWORD cInputTypes, const GUID* pInputTypes, const REGPINMEDIUM* pMedIn, const CLSID* pPinCategoryIn, BOOL bRender, BOOL bOutputNeeded, DWORD cOutputTypes, const GUID* pOutputTypes, const REGPINMEDIUM* pMedOut, const CLSID* pPinCategoryOut) PURE; HRESULT CALLBACK IFilterMapper2_CreateCategory_Proxy( IFilterMapper2* This, REFCLSID clsidCategory, DWORD dwCategoryMerit, LPCWSTR Description); void __RPC_STUB IFilterMapper2_CreateCategory_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IFilterMapper2_UnregisterFilter_Proxy( IFilterMapper2* This, const CLSID* pclsidCategory, const OLECHAR* szInstance, REFCLSID Filter); void __RPC_STUB IFilterMapper2_UnregisterFilter_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IFilterMapper2_RegisterFilter_Proxy( IFilterMapper2* This, REFCLSID clsidFilter, LPCWSTR Name, IMoniker** ppMoniker, const CLSID* pclsidCategory, const OLECHAR* szInstance, const REGFILTER2* prf2); void __RPC_STUB IFilterMapper2_RegisterFilter_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IFilterMapper2_EnumMatchingFilters_Proxy( IFilterMapper2* This, IEnumMoniker** ppEnum, DWORD dwFlags, BOOL bExactMatch, DWORD dwMerit, BOOL bInputNeeded, DWORD cInputTypes, const GUID* pInputTypes, const REGPINMEDIUM* pMedIn, const CLSID* pPinCategoryIn, BOOL bRender, BOOL bOutputNeeded, DWORD cOutputTypes, const GUID* pOutputTypes, const REGPINMEDIUM* pMedOut, const CLSID* pPinCategoryOut); void __RPC_STUB IFilterMapper2_EnumMatchingFilters_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); #endif /* __IFilterMapper2_INTERFACE_DEFINED__ */ #ifndef __IFilterMapper3_FWD_DEFINED__ #define __IFilterMapper3_FWD_DEFINED__ typedef struct IFilterMapper3 IFilterMapper3; #endif /***************************************************************************** * IFilterMapper3 interface */ #ifndef __IFilterMapper3_INTERFACE_DEFINED__ #define __IFilterMapper3_INTERFACE_DEFINED__ DEFINE_GUID(IID_IFilterMapper3, 0xb79bb0b1, 0x33c1, 0x11d1, 0xab,0xe1, 0x00,0xa0,0xc9,0x05,0xf3,0x75); #if defined(__cplusplus) && !defined(CINTERFACE) struct IFilterMapper3 : public IFilterMapper2 { virtual HRESULT STDMETHODCALLTYPE GetICreateDevEnum( ICreateDevEnum** ppEnum) = 0; }; #else typedef struct IFilterMapper3Vtbl IFilterMapper3Vtbl; struct IFilterMapper3 { const IFilterMapper3Vtbl* lpVtbl; }; struct IFilterMapper3Vtbl { ICOM_MSVTABLE_COMPAT_FIELDS /*** IUnknown methods ***/ HRESULT (STDMETHODCALLTYPE *QueryInterface)( IFilterMapper3* This, REFIID riid, void** ppvObject); ULONG (STDMETHODCALLTYPE *AddRef)( IFilterMapper3* This); ULONG (STDMETHODCALLTYPE *Release)( IFilterMapper3* This); /*** IFilterMapper2 methods ***/ HRESULT (STDMETHODCALLTYPE *CreateCategory)( IFilterMapper3* This, REFCLSID clsidCategory, DWORD dwCategoryMerit, LPCWSTR Description); HRESULT (STDMETHODCALLTYPE *UnregisterFilter)( IFilterMapper3* This, const CLSID* pclsidCategory, const OLECHAR* szInstance, REFCLSID Filter); HRESULT (STDMETHODCALLTYPE *RegisterFilter)( IFilterMapper3* This, REFCLSID clsidFilter, LPCWSTR Name, IMoniker** ppMoniker, const CLSID* pclsidCategory, const OLECHAR* szInstance, const REGFILTER2* prf2); HRESULT (STDMETHODCALLTYPE *EnumMatchingFilters)( IFilterMapper3* This, IEnumMoniker** ppEnum, DWORD dwFlags, BOOL bExactMatch, DWORD dwMerit, BOOL bInputNeeded, DWORD cInputTypes, const GUID* pInputTypes, const REGPINMEDIUM* pMedIn, const CLSID* pPinCategoryIn, BOOL bRender, BOOL bOutputNeeded, DWORD cOutputTypes, const GUID* pOutputTypes, const REGPINMEDIUM* pMedOut, const CLSID* pPinCategoryOut); /*** IFilterMapper3 methods ***/ HRESULT (STDMETHODCALLTYPE *GetICreateDevEnum)( IFilterMapper3* This, ICreateDevEnum** ppEnum); }; /*** IUnknown methods ***/ #define IFilterMapper3_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) #define IFilterMapper3_AddRef(p) (p)->lpVtbl->AddRef(p) #define IFilterMapper3_Release(p) (p)->lpVtbl->Release(p) /*** IFilterMapper2 methods ***/ #define IFilterMapper3_CreateCategory(p,a,b,c) (p)->lpVtbl->CreateCategory(p,a,b,c) #define IFilterMapper3_UnregisterFilter(p,a,b,c) (p)->lpVtbl->UnregisterFilter(p,a,b,c) #define IFilterMapper3_RegisterFilter(p,a,b,c,d,e,f) (p)->lpVtbl->RegisterFilter(p,a,b,c,d,e,f) #define IFilterMapper3_EnumMatchingFilters(p,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o) (p)->lpVtbl->EnumMatchingFilters(p,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o) /*** IFilterMapper3 methods ***/ #define IFilterMapper3_GetICreateDevEnum(p,a) (p)->lpVtbl->GetICreateDevEnum(p,a) #endif #define IFilterMapper3_METHODS \ ICOM_MSVTABLE_COMPAT_FIELDS \ /*** IUnknown methods ***/ \ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \ STDMETHOD_(ULONG,AddRef)(THIS) PURE; \ STDMETHOD_(ULONG,Release)(THIS) PURE; \ /*** IFilterMapper2 methods ***/ \ STDMETHOD_(HRESULT,CreateCategory)(THIS_ REFCLSID clsidCategory, DWORD dwCategoryMerit, LPCWSTR Description) PURE; \ STDMETHOD_(HRESULT,UnregisterFilter)(THIS_ const CLSID* pclsidCategory, const OLECHAR* szInstance, REFCLSID Filter) PURE; \ STDMETHOD_(HRESULT,RegisterFilter)(THIS_ REFCLSID clsidFilter, LPCWSTR Name, IMoniker** ppMoniker, const CLSID* pclsidCategory, const OLECHAR* szInstance, const REGFILTER2* prf2) PURE; \ STDMETHOD_(HRESULT,EnumMatchingFilters)(THIS_ IEnumMoniker** ppEnum, DWORD dwFlags, BOOL bExactMatch, DWORD dwMerit, BOOL bInputNeeded, DWORD cInputTypes, const GUID* pInputTypes, const REGPINMEDIUM* pMedIn, const CLSID* pPinCategoryIn, BOOL bRender, BOOL bOutputNeeded, DWORD cOutputTypes, const GUID* pOutputTypes, const REGPINMEDIUM* pMedOut, const CLSID* pPinCategoryOut) PURE; \ /*** IFilterMapper3 methods ***/ \ STDMETHOD_(HRESULT,GetICreateDevEnum)(THIS_ ICreateDevEnum** ppEnum) PURE; HRESULT CALLBACK IFilterMapper3_GetICreateDevEnum_Proxy( IFilterMapper3* This, ICreateDevEnum** ppEnum); void __RPC_STUB IFilterMapper3_GetICreateDevEnum_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); #endif /* __IFilterMapper3_INTERFACE_DEFINED__ */ typedef enum tagQualityMessageType { Famine, Flood } QualityMessageType; typedef struct tagQuality { QualityMessageType Type; long Proportion; REFERENCE_TIME Late; REFERENCE_TIME TimeStamp; } Quality; typedef IQualityControl *PQUALITYCONTROL; /***************************************************************************** * IQualityControl interface */ #ifndef __IQualityControl_INTERFACE_DEFINED__ #define __IQualityControl_INTERFACE_DEFINED__ DEFINE_GUID(IID_IQualityControl, 0x56a868a5, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70); #if defined(__cplusplus) && !defined(CINTERFACE) struct IQualityControl : public IUnknown { virtual HRESULT STDMETHODCALLTYPE Notify( IBaseFilter* pSelf, Quality q) = 0; virtual HRESULT STDMETHODCALLTYPE SetSink( IQualityControl* piqc) = 0; }; #else typedef struct IQualityControlVtbl IQualityControlVtbl; struct IQualityControl { const IQualityControlVtbl* lpVtbl; }; struct IQualityControlVtbl { ICOM_MSVTABLE_COMPAT_FIELDS /*** IUnknown methods ***/ HRESULT (STDMETHODCALLTYPE *QueryInterface)( IQualityControl* This, REFIID riid, void** ppvObject); ULONG (STDMETHODCALLTYPE *AddRef)( IQualityControl* This); ULONG (STDMETHODCALLTYPE *Release)( IQualityControl* This); /*** IQualityControl methods ***/ HRESULT (STDMETHODCALLTYPE *Notify)( IQualityControl* This, IBaseFilter* pSelf, Quality q); HRESULT (STDMETHODCALLTYPE *SetSink)( IQualityControl* This, IQualityControl* piqc); }; /*** IUnknown methods ***/ #define IQualityControl_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) #define IQualityControl_AddRef(p) (p)->lpVtbl->AddRef(p) #define IQualityControl_Release(p) (p)->lpVtbl->Release(p) /*** IQualityControl methods ***/ #define IQualityControl_Notify(p,a,b) (p)->lpVtbl->Notify(p,a,b) #define IQualityControl_SetSink(p,a) (p)->lpVtbl->SetSink(p,a) #endif #define IQualityControl_METHODS \ ICOM_MSVTABLE_COMPAT_FIELDS \ /*** IUnknown methods ***/ \ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \ STDMETHOD_(ULONG,AddRef)(THIS) PURE; \ STDMETHOD_(ULONG,Release)(THIS) PURE; \ /*** IQualityControl methods ***/ \ STDMETHOD_(HRESULT,Notify)(THIS_ IBaseFilter* pSelf, Quality q) PURE; \ STDMETHOD_(HRESULT,SetSink)(THIS_ IQualityControl* piqc) PURE; HRESULT CALLBACK IQualityControl_Notify_Proxy( IQualityControl* This, IBaseFilter* pSelf, Quality q); void __RPC_STUB IQualityControl_Notify_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IQualityControl_SetSink_Proxy( IQualityControl* This, IQualityControl* piqc); void __RPC_STUB IQualityControl_SetSink_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); #endif /* __IQualityControl_INTERFACE_DEFINED__ */ enum { CK_NOCOLORKEY = 0x0, CK_INDEX = 0x1, CK_RGB = 0x2 }; typedef struct tagCOLORKEY { DWORD KeyType; DWORD PaletteIndex; COLORREF LowColorValue; COLORREF HighColorValue; } COLORKEY; enum { ADVISE_NONE = 0x0, ADVISE_CLIPPING = 0x1, ADVISE_PALETTE = 0x2, ADVISE_COLORKEY = 0x4, ADVISE_POSITION = 0x8, ADVISE_DISPLAY_CHANGE = 0x10 }; #define ADVISE_ALL (((ADVISE_CLIPPING | ADVISE_PALETTE) | ADVISE_COLORKEY) | ADVISE_POSITION) #define ADVISE_ALL2 (ADVISE_ALL | ADVISE_DISPLAY_CHANGE) #ifndef _WINGDI_ typedef struct _RGNDATAHEADER { DWORD dwSize; DWORD iType; DWORD nCount; DWORD nRgnSize; RECT rcBound; } RGNDATAHEADER; typedef struct _RGNDATA { RGNDATAHEADER rdh; char Buffer[1]; } RGNDATA; #endif /* _WINGDI_ */ /***************************************************************************** * IOverlayNotify interface */ #ifndef __IOverlayNotify_INTERFACE_DEFINED__ #define __IOverlayNotify_INTERFACE_DEFINED__ DEFINE_GUID(IID_IOverlayNotify, 0x56a868a0, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70); #if defined(__cplusplus) && !defined(CINTERFACE) struct IOverlayNotify : public IUnknown { virtual HRESULT STDMETHODCALLTYPE OnPaletteChange( DWORD dwColors, const PALETTEENTRY* pPalette) = 0; virtual HRESULT STDMETHODCALLTYPE OnClipChange( const RECT* pSourceRect, const RECT* pDestinationRect, const RGNDATA* pRgnData) = 0; virtual HRESULT STDMETHODCALLTYPE OnColorKeyChange( const COLORKEY* pColorKey) = 0; virtual HRESULT STDMETHODCALLTYPE OnPositionChange( const RECT* pSourceRect, const RECT* pDestinationRect) = 0; }; #else typedef struct IOverlayNotifyVtbl IOverlayNotifyVtbl; struct IOverlayNotify { const IOverlayNotifyVtbl* lpVtbl; }; struct IOverlayNotifyVtbl { ICOM_MSVTABLE_COMPAT_FIELDS /*** IUnknown methods ***/ HRESULT (STDMETHODCALLTYPE *QueryInterface)( IOverlayNotify* This, REFIID riid, void** ppvObject); ULONG (STDMETHODCALLTYPE *AddRef)( IOverlayNotify* This); ULONG (STDMETHODCALLTYPE *Release)( IOverlayNotify* This); /*** IOverlayNotify methods ***/ HRESULT (STDMETHODCALLTYPE *OnPaletteChange)( IOverlayNotify* This, DWORD dwColors, const PALETTEENTRY* pPalette); HRESULT (STDMETHODCALLTYPE *OnClipChange)( IOverlayNotify* This, const RECT* pSourceRect, const RECT* pDestinationRect, const RGNDATA* pRgnData); HRESULT (STDMETHODCALLTYPE *OnColorKeyChange)( IOverlayNotify* This, const COLORKEY* pColorKey); HRESULT (STDMETHODCALLTYPE *OnPositionChange)( IOverlayNotify* This, const RECT* pSourceRect, const RECT* pDestinationRect); }; /*** IUnknown methods ***/ #define IOverlayNotify_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) #define IOverlayNotify_AddRef(p) (p)->lpVtbl->AddRef(p) #define IOverlayNotify_Release(p) (p)->lpVtbl->Release(p) /*** IOverlayNotify methods ***/ #define IOverlayNotify_OnPaletteChange(p,a,b) (p)->lpVtbl->OnPaletteChange(p,a,b) #define IOverlayNotify_OnClipChange(p,a,b,c) (p)->lpVtbl->OnClipChange(p,a,b,c) #define IOverlayNotify_OnColorKeyChange(p,a) (p)->lpVtbl->OnColorKeyChange(p,a) #define IOverlayNotify_OnPositionChange(p,a,b) (p)->lpVtbl->OnPositionChange(p,a,b) #endif #define IOverlayNotify_METHODS \ ICOM_MSVTABLE_COMPAT_FIELDS \ /*** IUnknown methods ***/ \ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \ STDMETHOD_(ULONG,AddRef)(THIS) PURE; \ STDMETHOD_(ULONG,Release)(THIS) PURE; \ /*** IOverlayNotify methods ***/ \ STDMETHOD_(HRESULT,OnPaletteChange)(THIS_ DWORD dwColors, const PALETTEENTRY* pPalette) PURE; \ STDMETHOD_(HRESULT,OnClipChange)(THIS_ const RECT* pSourceRect, const RECT* pDestinationRect, const RGNDATA* pRgnData) PURE; \ STDMETHOD_(HRESULT,OnColorKeyChange)(THIS_ const COLORKEY* pColorKey) PURE; \ STDMETHOD_(HRESULT,OnPositionChange)(THIS_ const RECT* pSourceRect, const RECT* pDestinationRect) PURE; HRESULT CALLBACK IOverlayNotify_OnPaletteChange_Proxy( IOverlayNotify* This, DWORD dwColors, const PALETTEENTRY* pPalette); void __RPC_STUB IOverlayNotify_OnPaletteChange_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IOverlayNotify_OnClipChange_Proxy( IOverlayNotify* This, const RECT* pSourceRect, const RECT* pDestinationRect, const RGNDATA* pRgnData); void __RPC_STUB IOverlayNotify_OnClipChange_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IOverlayNotify_OnColorKeyChange_Proxy( IOverlayNotify* This, const COLORKEY* pColorKey); void __RPC_STUB IOverlayNotify_OnColorKeyChange_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IOverlayNotify_OnPositionChange_Proxy( IOverlayNotify* This, const RECT* pSourceRect, const RECT* pDestinationRect); void __RPC_STUB IOverlayNotify_OnPositionChange_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); #endif /* __IOverlayNotify_INTERFACE_DEFINED__ */ typedef IOverlayNotify *POVERLAYNOTIFY; #if 0 typedef HANDLE HMONITOR; #endif /* 0 */ /***************************************************************************** * IOverlayNotify2 interface */ #ifndef __IOverlayNotify2_INTERFACE_DEFINED__ #define __IOverlayNotify2_INTERFACE_DEFINED__ DEFINE_GUID(IID_IOverlayNotify2, 0x680efa10, 0xd535, 0x11d1, 0x87,0xc8, 0x00,0xa0,0xc9,0x22,0x31,0x96); #if defined(__cplusplus) && !defined(CINTERFACE) struct IOverlayNotify2 : public IOverlayNotify { virtual HRESULT STDMETHODCALLTYPE OnDisplayChange( HMONITOR hMonitor) = 0; }; #else typedef struct IOverlayNotify2Vtbl IOverlayNotify2Vtbl; struct IOverlayNotify2 { const IOverlayNotify2Vtbl* lpVtbl; }; struct IOverlayNotify2Vtbl { ICOM_MSVTABLE_COMPAT_FIELDS /*** IUnknown methods ***/ HRESULT (STDMETHODCALLTYPE *QueryInterface)( IOverlayNotify2* This, REFIID riid, void** ppvObject); ULONG (STDMETHODCALLTYPE *AddRef)( IOverlayNotify2* This); ULONG (STDMETHODCALLTYPE *Release)( IOverlayNotify2* This); /*** IOverlayNotify methods ***/ HRESULT (STDMETHODCALLTYPE *OnPaletteChange)( IOverlayNotify2* This, DWORD dwColors, const PALETTEENTRY* pPalette); HRESULT (STDMETHODCALLTYPE *OnClipChange)( IOverlayNotify2* This, const RECT* pSourceRect, const RECT* pDestinationRect, const RGNDATA* pRgnData); HRESULT (STDMETHODCALLTYPE *OnColorKeyChange)( IOverlayNotify2* This, const COLORKEY* pColorKey); HRESULT (STDMETHODCALLTYPE *OnPositionChange)( IOverlayNotify2* This, const RECT* pSourceRect, const RECT* pDestinationRect); /*** IOverlayNotify2 methods ***/ HRESULT (STDMETHODCALLTYPE *OnDisplayChange)( IOverlayNotify2* This, HMONITOR hMonitor); }; /*** IUnknown methods ***/ #define IOverlayNotify2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) #define IOverlayNotify2_AddRef(p) (p)->lpVtbl->AddRef(p) #define IOverlayNotify2_Release(p) (p)->lpVtbl->Release(p) /*** IOverlayNotify methods ***/ #define IOverlayNotify2_OnPaletteChange(p,a,b) (p)->lpVtbl->OnPaletteChange(p,a,b) #define IOverlayNotify2_OnClipChange(p,a,b,c) (p)->lpVtbl->OnClipChange(p,a,b,c) #define IOverlayNotify2_OnColorKeyChange(p,a) (p)->lpVtbl->OnColorKeyChange(p,a) #define IOverlayNotify2_OnPositionChange(p,a,b) (p)->lpVtbl->OnPositionChange(p,a,b) /*** IOverlayNotify2 methods ***/ #define IOverlayNotify2_OnDisplayChange(p,a) (p)->lpVtbl->OnDisplayChange(p,a) #endif #define IOverlayNotify2_METHODS \ ICOM_MSVTABLE_COMPAT_FIELDS \ /*** IUnknown methods ***/ \ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \ STDMETHOD_(ULONG,AddRef)(THIS) PURE; \ STDMETHOD_(ULONG,Release)(THIS) PURE; \ /*** IOverlayNotify methods ***/ \ STDMETHOD_(HRESULT,OnPaletteChange)(THIS_ DWORD dwColors, const PALETTEENTRY* pPalette) PURE; \ STDMETHOD_(HRESULT,OnClipChange)(THIS_ const RECT* pSourceRect, const RECT* pDestinationRect, const RGNDATA* pRgnData) PURE; \ STDMETHOD_(HRESULT,OnColorKeyChange)(THIS_ const COLORKEY* pColorKey) PURE; \ STDMETHOD_(HRESULT,OnPositionChange)(THIS_ const RECT* pSourceRect, const RECT* pDestinationRect) PURE; \ /*** IOverlayNotify2 methods ***/ \ STDMETHOD_(HRESULT,OnDisplayChange)(THIS_ HMONITOR hMonitor) PURE; HRESULT CALLBACK IOverlayNotify2_OnDisplayChange_Proxy( IOverlayNotify2* This, HMONITOR hMonitor); void __RPC_STUB IOverlayNotify2_OnDisplayChange_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); #endif /* __IOverlayNotify2_INTERFACE_DEFINED__ */ typedef IOverlayNotify2 *POVERLAYNOTIFY2; /***************************************************************************** * IOverlay interface */ #ifndef __IOverlay_INTERFACE_DEFINED__ #define __IOverlay_INTERFACE_DEFINED__ DEFINE_GUID(IID_IOverlay, 0x56a868a1, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70); #if defined(__cplusplus) && !defined(CINTERFACE) struct IOverlay : public IUnknown { virtual HRESULT STDMETHODCALLTYPE GetPalette( DWORD* pdwColors, PALETTEENTRY** ppPalette) = 0; virtual HRESULT STDMETHODCALLTYPE SetPalette( DWORD dwColors, PALETTEENTRY* pPalette) = 0; virtual HRESULT STDMETHODCALLTYPE GetDefaultColorKey( COLORKEY* pColorKey) = 0; virtual HRESULT STDMETHODCALLTYPE GetColorKey( COLORKEY* pColorKey) = 0; virtual HRESULT STDMETHODCALLTYPE SetColorKey( COLORKEY* pColorKey) = 0; virtual HRESULT STDMETHODCALLTYPE GetWindowHandle( HWND* pHwnd) = 0; virtual HRESULT STDMETHODCALLTYPE GetClipList( RECT* pSourceRect, RECT* pDestinationRect, RGNDATA** ppRgnData) = 0; virtual HRESULT STDMETHODCALLTYPE GetVideoPosition( RECT* pSourceRect, RECT* pDestinationRect) = 0; virtual HRESULT STDMETHODCALLTYPE Advise( IOverlayNotify* pOverlayNotify, DWORD dwInterests) = 0; virtual HRESULT STDMETHODCALLTYPE Unadvise( ) = 0; }; #else typedef struct IOverlayVtbl IOverlayVtbl; struct IOverlay { const IOverlayVtbl* lpVtbl; }; struct IOverlayVtbl { ICOM_MSVTABLE_COMPAT_FIELDS /*** IUnknown methods ***/ HRESULT (STDMETHODCALLTYPE *QueryInterface)( IOverlay* This, REFIID riid, void** ppvObject); ULONG (STDMETHODCALLTYPE *AddRef)( IOverlay* This); ULONG (STDMETHODCALLTYPE *Release)( IOverlay* This); /*** IOverlay methods ***/ HRESULT (STDMETHODCALLTYPE *GetPalette)( IOverlay* This, DWORD* pdwColors, PALETTEENTRY** ppPalette); HRESULT (STDMETHODCALLTYPE *SetPalette)( IOverlay* This, DWORD dwColors, PALETTEENTRY* pPalette); HRESULT (STDMETHODCALLTYPE *GetDefaultColorKey)( IOverlay* This, COLORKEY* pColorKey); HRESULT (STDMETHODCALLTYPE *GetColorKey)( IOverlay* This, COLORKEY* pColorKey); HRESULT (STDMETHODCALLTYPE *SetColorKey)( IOverlay* This, COLORKEY* pColorKey); HRESULT (STDMETHODCALLTYPE *GetWindowHandle)( IOverlay* This, HWND* pHwnd); HRESULT (STDMETHODCALLTYPE *GetClipList)( IOverlay* This, RECT* pSourceRect, RECT* pDestinationRect, RGNDATA** ppRgnData); HRESULT (STDMETHODCALLTYPE *GetVideoPosition)( IOverlay* This, RECT* pSourceRect, RECT* pDestinationRect); HRESULT (STDMETHODCALLTYPE *Advise)( IOverlay* This, IOverlayNotify* pOverlayNotify, DWORD dwInterests); HRESULT (STDMETHODCALLTYPE *Unadvise)( IOverlay* This); }; /*** IUnknown methods ***/ #define IOverlay_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) #define IOverlay_AddRef(p) (p)->lpVtbl->AddRef(p) #define IOverlay_Release(p) (p)->lpVtbl->Release(p) /*** IOverlay methods ***/ #define IOverlay_GetPalette(p,a,b) (p)->lpVtbl->GetPalette(p,a,b) #define IOverlay_SetPalette(p,a,b) (p)->lpVtbl->SetPalette(p,a,b) #define IOverlay_GetDefaultColorKey(p,a) (p)->lpVtbl->GetDefaultColorKey(p,a) #define IOverlay_GetColorKey(p,a) (p)->lpVtbl->GetColorKey(p,a) #define IOverlay_SetColorKey(p,a) (p)->lpVtbl->SetColorKey(p,a) #define IOverlay_GetWindowHandle(p,a) (p)->lpVtbl->GetWindowHandle(p,a) #define IOverlay_GetClipList(p,a,b,c) (p)->lpVtbl->GetClipList(p,a,b,c) #define IOverlay_GetVideoPosition(p,a,b) (p)->lpVtbl->GetVideoPosition(p,a,b) #define IOverlay_Advise(p,a,b) (p)->lpVtbl->Advise(p,a,b) #define IOverlay_Unadvise(p) (p)->lpVtbl->Unadvise(p) #endif #define IOverlay_METHODS \ ICOM_MSVTABLE_COMPAT_FIELDS \ /*** IUnknown methods ***/ \ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \ STDMETHOD_(ULONG,AddRef)(THIS) PURE; \ STDMETHOD_(ULONG,Release)(THIS) PURE; \ /*** IOverlay methods ***/ \ STDMETHOD_(HRESULT,GetPalette)(THIS_ DWORD* pdwColors, PALETTEENTRY** ppPalette) PURE; \ STDMETHOD_(HRESULT,SetPalette)(THIS_ DWORD dwColors, PALETTEENTRY* pPalette) PURE; \ STDMETHOD_(HRESULT,GetDefaultColorKey)(THIS_ COLORKEY* pColorKey) PURE; \ STDMETHOD_(HRESULT,GetColorKey)(THIS_ COLORKEY* pColorKey) PURE; \ STDMETHOD_(HRESULT,SetColorKey)(THIS_ COLORKEY* pColorKey) PURE; \ STDMETHOD_(HRESULT,GetWindowHandle)(THIS_ HWND* pHwnd) PURE; \ STDMETHOD_(HRESULT,GetClipList)(THIS_ RECT* pSourceRect, RECT* pDestinationRect, RGNDATA** ppRgnData) PURE; \ STDMETHOD_(HRESULT,GetVideoPosition)(THIS_ RECT* pSourceRect, RECT* pDestinationRect) PURE; \ STDMETHOD_(HRESULT,Advise)(THIS_ IOverlayNotify* pOverlayNotify, DWORD dwInterests) PURE; \ STDMETHOD_(HRESULT,Unadvise)(THIS) PURE; HRESULT CALLBACK IOverlay_GetPalette_Proxy( IOverlay* This, DWORD* pdwColors, PALETTEENTRY** ppPalette); void __RPC_STUB IOverlay_GetPalette_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IOverlay_SetPalette_Proxy( IOverlay* This, DWORD dwColors, PALETTEENTRY* pPalette); void __RPC_STUB IOverlay_SetPalette_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IOverlay_GetDefaultColorKey_Proxy( IOverlay* This, COLORKEY* pColorKey); void __RPC_STUB IOverlay_GetDefaultColorKey_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IOverlay_GetColorKey_Proxy( IOverlay* This, COLORKEY* pColorKey); void __RPC_STUB IOverlay_GetColorKey_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IOverlay_SetColorKey_Proxy( IOverlay* This, COLORKEY* pColorKey); void __RPC_STUB IOverlay_SetColorKey_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IOverlay_GetWindowHandle_Proxy( IOverlay* This, HWND* pHwnd); void __RPC_STUB IOverlay_GetWindowHandle_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IOverlay_GetClipList_Proxy( IOverlay* This, RECT* pSourceRect, RECT* pDestinationRect, RGNDATA** ppRgnData); void __RPC_STUB IOverlay_GetClipList_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IOverlay_GetVideoPosition_Proxy( IOverlay* This, RECT* pSourceRect, RECT* pDestinationRect); void __RPC_STUB IOverlay_GetVideoPosition_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IOverlay_Advise_Proxy( IOverlay* This, IOverlayNotify* pOverlayNotify, DWORD dwInterests); void __RPC_STUB IOverlay_Advise_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IOverlay_Unadvise_Proxy( IOverlay* This); void __RPC_STUB IOverlay_Unadvise_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); #endif /* __IOverlay_INTERFACE_DEFINED__ */ typedef IOverlay *POVERLAY; /***************************************************************************** * IMediaEventSink interface */ #ifndef __IMediaEventSink_INTERFACE_DEFINED__ #define __IMediaEventSink_INTERFACE_DEFINED__ DEFINE_GUID(IID_IMediaEventSink, 0x56a868a2, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70); #if defined(__cplusplus) && !defined(CINTERFACE) struct IMediaEventSink : public IUnknown { virtual HRESULT STDMETHODCALLTYPE Notify( long EventCode, LONG_PTR EventParam1, LONG_PTR EventParam2) = 0; }; #else typedef struct IMediaEventSinkVtbl IMediaEventSinkVtbl; struct IMediaEventSink { const IMediaEventSinkVtbl* lpVtbl; }; struct IMediaEventSinkVtbl { ICOM_MSVTABLE_COMPAT_FIELDS /*** IUnknown methods ***/ HRESULT (STDMETHODCALLTYPE *QueryInterface)( IMediaEventSink* This, REFIID riid, void** ppvObject); ULONG (STDMETHODCALLTYPE *AddRef)( IMediaEventSink* This); ULONG (STDMETHODCALLTYPE *Release)( IMediaEventSink* This); /*** IMediaEventSink methods ***/ HRESULT (STDMETHODCALLTYPE *Notify)( IMediaEventSink* This, long EventCode, LONG_PTR EventParam1, LONG_PTR EventParam2); }; /*** IUnknown methods ***/ #define IMediaEventSink_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) #define IMediaEventSink_AddRef(p) (p)->lpVtbl->AddRef(p) #define IMediaEventSink_Release(p) (p)->lpVtbl->Release(p) /*** IMediaEventSink methods ***/ #define IMediaEventSink_Notify(p,a,b,c) (p)->lpVtbl->Notify(p,a,b,c) #endif #define IMediaEventSink_METHODS \ ICOM_MSVTABLE_COMPAT_FIELDS \ /*** IUnknown methods ***/ \ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \ STDMETHOD_(ULONG,AddRef)(THIS) PURE; \ STDMETHOD_(ULONG,Release)(THIS) PURE; \ /*** IMediaEventSink methods ***/ \ STDMETHOD_(HRESULT,Notify)(THIS_ long EventCode, LONG_PTR EventParam1, LONG_PTR EventParam2) PURE; HRESULT CALLBACK IMediaEventSink_Notify_Proxy( IMediaEventSink* This, long EventCode, LONG_PTR EventParam1, LONG_PTR EventParam2); void __RPC_STUB IMediaEventSink_Notify_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); #endif /* __IMediaEventSink_INTERFACE_DEFINED__ */ typedef IMediaEventSink *PMEDIAEVENTSINK; /***************************************************************************** * IFileSourceFilter interface */ #ifndef __IFileSourceFilter_INTERFACE_DEFINED__ #define __IFileSourceFilter_INTERFACE_DEFINED__ DEFINE_GUID(IID_IFileSourceFilter, 0x56a868a6, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70); #if defined(__cplusplus) && !defined(CINTERFACE) struct IFileSourceFilter : public IUnknown { virtual HRESULT STDMETHODCALLTYPE Load( LPCOLESTR pszFileName, const AM_MEDIA_TYPE* pmt) = 0; virtual HRESULT STDMETHODCALLTYPE GetCurFile( LPOLESTR* ppszFileName, AM_MEDIA_TYPE* pmt) = 0; }; #else typedef struct IFileSourceFilterVtbl IFileSourceFilterVtbl; struct IFileSourceFilter { const IFileSourceFilterVtbl* lpVtbl; }; struct IFileSourceFilterVtbl { ICOM_MSVTABLE_COMPAT_FIELDS /*** IUnknown methods ***/ HRESULT (STDMETHODCALLTYPE *QueryInterface)( IFileSourceFilter* This, REFIID riid, void** ppvObject); ULONG (STDMETHODCALLTYPE *AddRef)( IFileSourceFilter* This); ULONG (STDMETHODCALLTYPE *Release)( IFileSourceFilter* This); /*** IFileSourceFilter methods ***/ HRESULT (STDMETHODCALLTYPE *Load)( IFileSourceFilter* This, LPCOLESTR pszFileName, const AM_MEDIA_TYPE* pmt); HRESULT (STDMETHODCALLTYPE *GetCurFile)( IFileSourceFilter* This, LPOLESTR* ppszFileName, AM_MEDIA_TYPE* pmt); }; /*** IUnknown methods ***/ #define IFileSourceFilter_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) #define IFileSourceFilter_AddRef(p) (p)->lpVtbl->AddRef(p) #define IFileSourceFilter_Release(p) (p)->lpVtbl->Release(p) /*** IFileSourceFilter methods ***/ #define IFileSourceFilter_Load(p,a,b) (p)->lpVtbl->Load(p,a,b) #define IFileSourceFilter_GetCurFile(p,a,b) (p)->lpVtbl->GetCurFile(p,a,b) #endif #define IFileSourceFilter_METHODS \ ICOM_MSVTABLE_COMPAT_FIELDS \ /*** IUnknown methods ***/ \ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \ STDMETHOD_(ULONG,AddRef)(THIS) PURE; \ STDMETHOD_(ULONG,Release)(THIS) PURE; \ /*** IFileSourceFilter methods ***/ \ STDMETHOD_(HRESULT,Load)(THIS_ LPCOLESTR pszFileName, const AM_MEDIA_TYPE* pmt) PURE; \ STDMETHOD_(HRESULT,GetCurFile)(THIS_ LPOLESTR* ppszFileName, AM_MEDIA_TYPE* pmt) PURE; HRESULT CALLBACK IFileSourceFilter_Load_Proxy( IFileSourceFilter* This, LPCOLESTR pszFileName, const AM_MEDIA_TYPE* pmt); void __RPC_STUB IFileSourceFilter_Load_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IFileSourceFilter_GetCurFile_Proxy( IFileSourceFilter* This, LPOLESTR* ppszFileName, AM_MEDIA_TYPE* pmt); void __RPC_STUB IFileSourceFilter_GetCurFile_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); #endif /* __IFileSourceFilter_INTERFACE_DEFINED__ */ typedef IFileSourceFilter *PFILTERFILESOURCE; /***************************************************************************** * IFileSinkFilter interface */ #ifndef __IFileSinkFilter_INTERFACE_DEFINED__ #define __IFileSinkFilter_INTERFACE_DEFINED__ DEFINE_GUID(IID_IFileSinkFilter, 0xa2104830, 0x7c70, 0x11cf, 0x8b,0xce, 0x00,0xaa,0x00,0xa3,0xf1,0xa6); #if defined(__cplusplus) && !defined(CINTERFACE) struct IFileSinkFilter : public IUnknown { virtual HRESULT STDMETHODCALLTYPE SetFileName( LPCOLESTR pszFileName, const AM_MEDIA_TYPE* pmt) = 0; virtual HRESULT STDMETHODCALLTYPE GetCurFile( LPOLESTR* ppszFileName, AM_MEDIA_TYPE* pmt) = 0; }; #else typedef struct IFileSinkFilterVtbl IFileSinkFilterVtbl; struct IFileSinkFilter { const IFileSinkFilterVtbl* lpVtbl; }; struct IFileSinkFilterVtbl { ICOM_MSVTABLE_COMPAT_FIELDS /*** IUnknown methods ***/ HRESULT (STDMETHODCALLTYPE *QueryInterface)( IFileSinkFilter* This, REFIID riid, void** ppvObject); ULONG (STDMETHODCALLTYPE *AddRef)( IFileSinkFilter* This); ULONG (STDMETHODCALLTYPE *Release)( IFileSinkFilter* This); /*** IFileSinkFilter methods ***/ HRESULT (STDMETHODCALLTYPE *SetFileName)( IFileSinkFilter* This, LPCOLESTR pszFileName, const AM_MEDIA_TYPE* pmt); HRESULT (STDMETHODCALLTYPE *GetCurFile)( IFileSinkFilter* This, LPOLESTR* ppszFileName, AM_MEDIA_TYPE* pmt); }; /*** IUnknown methods ***/ #define IFileSinkFilter_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) #define IFileSinkFilter_AddRef(p) (p)->lpVtbl->AddRef(p) #define IFileSinkFilter_Release(p) (p)->lpVtbl->Release(p) /*** IFileSinkFilter methods ***/ #define IFileSinkFilter_SetFileName(p,a,b) (p)->lpVtbl->SetFileName(p,a,b) #define IFileSinkFilter_GetCurFile(p,a,b) (p)->lpVtbl->GetCurFile(p,a,b) #endif #define IFileSinkFilter_METHODS \ ICOM_MSVTABLE_COMPAT_FIELDS \ /*** IUnknown methods ***/ \ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \ STDMETHOD_(ULONG,AddRef)(THIS) PURE; \ STDMETHOD_(ULONG,Release)(THIS) PURE; \ /*** IFileSinkFilter methods ***/ \ STDMETHOD_(HRESULT,SetFileName)(THIS_ LPCOLESTR pszFileName, const AM_MEDIA_TYPE* pmt) PURE; \ STDMETHOD_(HRESULT,GetCurFile)(THIS_ LPOLESTR* ppszFileName, AM_MEDIA_TYPE* pmt) PURE; HRESULT CALLBACK IFileSinkFilter_SetFileName_Proxy( IFileSinkFilter* This, LPCOLESTR pszFileName, const AM_MEDIA_TYPE* pmt); void __RPC_STUB IFileSinkFilter_SetFileName_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IFileSinkFilter_GetCurFile_Proxy( IFileSinkFilter* This, LPOLESTR* ppszFileName, AM_MEDIA_TYPE* pmt); void __RPC_STUB IFileSinkFilter_GetCurFile_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); #endif /* __IFileSinkFilter_INTERFACE_DEFINED__ */ typedef IFileSinkFilter *PFILTERFILESINK; /***************************************************************************** * IFileSinkFilter2 interface */ #ifndef __IFileSinkFilter2_INTERFACE_DEFINED__ #define __IFileSinkFilter2_INTERFACE_DEFINED__ DEFINE_GUID(IID_IFileSinkFilter2, 0x00855b90, 0xce1b, 0x11d0, 0xbd,0x4f, 0x00,0xa0,0xc9,0x11,0xce,0x86); #if defined(__cplusplus) && !defined(CINTERFACE) struct IFileSinkFilter2 : public IFileSinkFilter { virtual HRESULT STDMETHODCALLTYPE SetMode( DWORD dwFlags) = 0; virtual HRESULT STDMETHODCALLTYPE GetMode( DWORD* pdwFlags) = 0; }; #else typedef struct IFileSinkFilter2Vtbl IFileSinkFilter2Vtbl; struct IFileSinkFilter2 { const IFileSinkFilter2Vtbl* lpVtbl; }; struct IFileSinkFilter2Vtbl { ICOM_MSVTABLE_COMPAT_FIELDS /*** IUnknown methods ***/ HRESULT (STDMETHODCALLTYPE *QueryInterface)( IFileSinkFilter2* This, REFIID riid, void** ppvObject); ULONG (STDMETHODCALLTYPE *AddRef)( IFileSinkFilter2* This); ULONG (STDMETHODCALLTYPE *Release)( IFileSinkFilter2* This); /*** IFileSinkFilter methods ***/ HRESULT (STDMETHODCALLTYPE *SetFileName)( IFileSinkFilter2* This, LPCOLESTR pszFileName, const AM_MEDIA_TYPE* pmt); HRESULT (STDMETHODCALLTYPE *GetCurFile)( IFileSinkFilter2* This, LPOLESTR* ppszFileName, AM_MEDIA_TYPE* pmt); /*** IFileSinkFilter2 methods ***/ HRESULT (STDMETHODCALLTYPE *SetMode)( IFileSinkFilter2* This, DWORD dwFlags); HRESULT (STDMETHODCALLTYPE *GetMode)( IFileSinkFilter2* This, DWORD* pdwFlags); }; /*** IUnknown methods ***/ #define IFileSinkFilter2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) #define IFileSinkFilter2_AddRef(p) (p)->lpVtbl->AddRef(p) #define IFileSinkFilter2_Release(p) (p)->lpVtbl->Release(p) /*** IFileSinkFilter methods ***/ #define IFileSinkFilter2_SetFileName(p,a,b) (p)->lpVtbl->SetFileName(p,a,b) #define IFileSinkFilter2_GetCurFile(p,a,b) (p)->lpVtbl->GetCurFile(p,a,b) /*** IFileSinkFilter2 methods ***/ #define IFileSinkFilter2_SetMode(p,a) (p)->lpVtbl->SetMode(p,a) #define IFileSinkFilter2_GetMode(p,a) (p)->lpVtbl->GetMode(p,a) #endif #define IFileSinkFilter2_METHODS \ ICOM_MSVTABLE_COMPAT_FIELDS \ /*** IUnknown methods ***/ \ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \ STDMETHOD_(ULONG,AddRef)(THIS) PURE; \ STDMETHOD_(ULONG,Release)(THIS) PURE; \ /*** IFileSinkFilter methods ***/ \ STDMETHOD_(HRESULT,SetFileName)(THIS_ LPCOLESTR pszFileName, const AM_MEDIA_TYPE* pmt) PURE; \ STDMETHOD_(HRESULT,GetCurFile)(THIS_ LPOLESTR* ppszFileName, AM_MEDIA_TYPE* pmt) PURE; \ /*** IFileSinkFilter2 methods ***/ \ STDMETHOD_(HRESULT,SetMode)(THIS_ DWORD dwFlags) PURE; \ STDMETHOD_(HRESULT,GetMode)(THIS_ DWORD* pdwFlags) PURE; HRESULT CALLBACK IFileSinkFilter2_SetMode_Proxy( IFileSinkFilter2* This, DWORD dwFlags); void __RPC_STUB IFileSinkFilter2_SetMode_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IFileSinkFilter2_GetMode_Proxy( IFileSinkFilter2* This, DWORD* pdwFlags); void __RPC_STUB IFileSinkFilter2_GetMode_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); #endif /* __IFileSinkFilter2_INTERFACE_DEFINED__ */ typedef IFileSinkFilter2 *PFILESINKFILTER2; typedef enum { AM_FILE_OVERWRITE = 0x1 } AM_FILESINK_FLAGS; /***************************************************************************** * IGraphBuilder interface */ #ifndef __IGraphBuilder_INTERFACE_DEFINED__ #define __IGraphBuilder_INTERFACE_DEFINED__ DEFINE_GUID(IID_IGraphBuilder, 0x56a868a9, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70); #if defined(__cplusplus) && !defined(CINTERFACE) struct IGraphBuilder : public IFilterGraph { virtual HRESULT STDMETHODCALLTYPE Connect( IPin* ppinOut, IPin* ppinIn) = 0; virtual HRESULT STDMETHODCALLTYPE Render( IPin* ppinOut) = 0; virtual HRESULT STDMETHODCALLTYPE RenderFile( LPCWSTR lpcwstrFile, LPCWSTR lpcwstrPlayList) = 0; virtual HRESULT STDMETHODCALLTYPE AddSourceFilter( LPCWSTR lpcwstrFileName, LPCWSTR lpcwstrFilterName, IBaseFilter** ppFilter) = 0; virtual HRESULT STDMETHODCALLTYPE SetLogFile( DWORD_PTR hFile) = 0; virtual HRESULT STDMETHODCALLTYPE Abort( ) = 0; virtual HRESULT STDMETHODCALLTYPE ShouldOperationContinue( ) = 0; }; #else typedef struct IGraphBuilderVtbl IGraphBuilderVtbl; struct IGraphBuilder { const IGraphBuilderVtbl* lpVtbl; }; struct IGraphBuilderVtbl { ICOM_MSVTABLE_COMPAT_FIELDS /*** IUnknown methods ***/ HRESULT (STDMETHODCALLTYPE *QueryInterface)( IGraphBuilder* This, REFIID riid, void** ppvObject); ULONG (STDMETHODCALLTYPE *AddRef)( IGraphBuilder* This); ULONG (STDMETHODCALLTYPE *Release)( IGraphBuilder* This); /*** IFilterGraph methods ***/ HRESULT (STDMETHODCALLTYPE *AddFilter)( IGraphBuilder* This, IBaseFilter* pFilter, LPCWSTR pName); HRESULT (STDMETHODCALLTYPE *RemoveFilter)( IGraphBuilder* This, IBaseFilter* pFilter); HRESULT (STDMETHODCALLTYPE *EnumFilters)( IGraphBuilder* This, IEnumFilters** ppEnum); HRESULT (STDMETHODCALLTYPE *FindFilterByName)( IGraphBuilder* This, LPCWSTR pName, IBaseFilter** ppFilter); HRESULT (STDMETHODCALLTYPE *ConnectDirect)( IGraphBuilder* This, IPin* ppinOut, IPin* ppinIn, const AM_MEDIA_TYPE* pmt); HRESULT (STDMETHODCALLTYPE *Reconnect)( IGraphBuilder* This, IPin* ppin); HRESULT (STDMETHODCALLTYPE *Disconnect)( IGraphBuilder* This, IPin* ppin); HRESULT (STDMETHODCALLTYPE *SetDefaultSyncSource)( IGraphBuilder* This); /*** IGraphBuilder methods ***/ HRESULT (STDMETHODCALLTYPE *Connect)( IGraphBuilder* This, IPin* ppinOut, IPin* ppinIn); HRESULT (STDMETHODCALLTYPE *Render)( IGraphBuilder* This, IPin* ppinOut); HRESULT (STDMETHODCALLTYPE *RenderFile)( IGraphBuilder* This, LPCWSTR lpcwstrFile, LPCWSTR lpcwstrPlayList); HRESULT (STDMETHODCALLTYPE *AddSourceFilter)( IGraphBuilder* This, LPCWSTR lpcwstrFileName, LPCWSTR lpcwstrFilterName, IBaseFilter** ppFilter); HRESULT (STDMETHODCALLTYPE *SetLogFile)( IGraphBuilder* This, DWORD_PTR hFile); HRESULT (STDMETHODCALLTYPE *Abort)( IGraphBuilder* This); HRESULT (STDMETHODCALLTYPE *ShouldOperationContinue)( IGraphBuilder* This); }; /*** IUnknown methods ***/ #define IGraphBuilder_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) #define IGraphBuilder_AddRef(p) (p)->lpVtbl->AddRef(p) #define IGraphBuilder_Release(p) (p)->lpVtbl->Release(p) /*** IFilterGraph methods ***/ #define IGraphBuilder_AddFilter(p,a,b) (p)->lpVtbl->AddFilter(p,a,b) #define IGraphBuilder_RemoveFilter(p,a) (p)->lpVtbl->RemoveFilter(p,a) #define IGraphBuilder_EnumFilters(p,a) (p)->lpVtbl->EnumFilters(p,a) #define IGraphBuilder_FindFilterByName(p,a,b) (p)->lpVtbl->FindFilterByName(p,a,b) #define IGraphBuilder_ConnectDirect(p,a,b,c) (p)->lpVtbl->ConnectDirect(p,a,b,c) #define IGraphBuilder_Reconnect(p,a) (p)->lpVtbl->Reconnect(p,a) #define IGraphBuilder_Disconnect(p,a) (p)->lpVtbl->Disconnect(p,a) #define IGraphBuilder_SetDefaultSyncSource(p) (p)->lpVtbl->SetDefaultSyncSource(p) /*** IGraphBuilder methods ***/ #define IGraphBuilder_Connect(p,a,b) (p)->lpVtbl->Connect(p,a,b) #define IGraphBuilder_Render(p,a) (p)->lpVtbl->Render(p,a) #define IGraphBuilder_RenderFile(p,a,b) (p)->lpVtbl->RenderFile(p,a,b) #define IGraphBuilder_AddSourceFilter(p,a,b,c) (p)->lpVtbl->AddSourceFilter(p,a,b,c) #define IGraphBuilder_SetLogFile(p,a) (p)->lpVtbl->SetLogFile(p,a) #define IGraphBuilder_Abort(p) (p)->lpVtbl->Abort(p) #define IGraphBuilder_ShouldOperationContinue(p) (p)->lpVtbl->ShouldOperationContinue(p) #endif #define IGraphBuilder_METHODS \ ICOM_MSVTABLE_COMPAT_FIELDS \ /*** IUnknown methods ***/ \ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \ STDMETHOD_(ULONG,AddRef)(THIS) PURE; \ STDMETHOD_(ULONG,Release)(THIS) PURE; \ /*** IFilterGraph methods ***/ \ STDMETHOD_(HRESULT,AddFilter)(THIS_ IBaseFilter* pFilter, LPCWSTR pName) PURE; \ STDMETHOD_(HRESULT,RemoveFilter)(THIS_ IBaseFilter* pFilter) PURE; \ STDMETHOD_(HRESULT,EnumFilters)(THIS_ IEnumFilters** ppEnum) PURE; \ STDMETHOD_(HRESULT,FindFilterByName)(THIS_ LPCWSTR pName, IBaseFilter** ppFilter) PURE; \ STDMETHOD_(HRESULT,ConnectDirect)(THIS_ IPin* ppinOut, IPin* ppinIn, const AM_MEDIA_TYPE* pmt) PURE; \ STDMETHOD_(HRESULT,Reconnect)(THIS_ IPin* ppin) PURE; \ STDMETHOD_(HRESULT,Disconnect)(THIS_ IPin* ppin) PURE; \ STDMETHOD_(HRESULT,SetDefaultSyncSource)(THIS) PURE; \ /*** IGraphBuilder methods ***/ \ STDMETHOD_(HRESULT,Connect)(THIS_ IPin* ppinOut, IPin* ppinIn) PURE; \ STDMETHOD_(HRESULT,Render)(THIS_ IPin* ppinOut) PURE; \ STDMETHOD_(HRESULT,RenderFile)(THIS_ LPCWSTR lpcwstrFile, LPCWSTR lpcwstrPlayList) PURE; \ STDMETHOD_(HRESULT,AddSourceFilter)(THIS_ LPCWSTR lpcwstrFileName, LPCWSTR lpcwstrFilterName, IBaseFilter** ppFilter) PURE; \ STDMETHOD_(HRESULT,SetLogFile)(THIS_ DWORD_PTR hFile) PURE; \ STDMETHOD_(HRESULT,Abort)(THIS) PURE; \ STDMETHOD_(HRESULT,ShouldOperationContinue)(THIS) PURE; HRESULT CALLBACK IGraphBuilder_Connect_Proxy( IGraphBuilder* This, IPin* ppinOut, IPin* ppinIn); void __RPC_STUB IGraphBuilder_Connect_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IGraphBuilder_Render_Proxy( IGraphBuilder* This, IPin* ppinOut); void __RPC_STUB IGraphBuilder_Render_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IGraphBuilder_RenderFile_Proxy( IGraphBuilder* This, LPCWSTR lpcwstrFile, LPCWSTR lpcwstrPlayList); void __RPC_STUB IGraphBuilder_RenderFile_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IGraphBuilder_AddSourceFilter_Proxy( IGraphBuilder* This, LPCWSTR lpcwstrFileName, LPCWSTR lpcwstrFilterName, IBaseFilter** ppFilter); void __RPC_STUB IGraphBuilder_AddSourceFilter_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IGraphBuilder_SetLogFile_Proxy( IGraphBuilder* This, DWORD_PTR hFile); void __RPC_STUB IGraphBuilder_SetLogFile_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IGraphBuilder_Abort_Proxy( IGraphBuilder* This); void __RPC_STUB IGraphBuilder_Abort_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IGraphBuilder_ShouldOperationContinue_Proxy( IGraphBuilder* This); void __RPC_STUB IGraphBuilder_ShouldOperationContinue_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); #endif /* __IGraphBuilder_INTERFACE_DEFINED__ */ /***************************************************************************** * ICaptureGraphBuilder interface */ #ifndef __ICaptureGraphBuilder_INTERFACE_DEFINED__ #define __ICaptureGraphBuilder_INTERFACE_DEFINED__ DEFINE_GUID(IID_ICaptureGraphBuilder, 0xbf87b6e0, 0x8c27, 0x11d0, 0xb3,0xf0, 0x00,0xaa,0x00,0x37,0x61,0xc5); #if defined(__cplusplus) && !defined(CINTERFACE) struct ICaptureGraphBuilder : public IUnknown { virtual HRESULT STDMETHODCALLTYPE SetFiltergraph( IGraphBuilder* pfg) = 0; virtual HRESULT STDMETHODCALLTYPE GetFiltergraph( IGraphBuilder** ppfg) = 0; virtual HRESULT STDMETHODCALLTYPE SetOutputFileName( const GUID* pType, LPCOLESTR lpstrFile, IBaseFilter** ppf, IFileSinkFilter** ppSink) = 0; virtual HRESULT STDMETHODCALLTYPE FindInterface( const GUID* pCategory, IBaseFilter* pf, REFIID riid, void** ppint) = 0; virtual HRESULT STDMETHODCALLTYPE RenderStream( const GUID* pCategory, IUnknown* pSource, IBaseFilter* pfCompressor, IBaseFilter* pfRenderer) = 0; virtual HRESULT STDMETHODCALLTYPE ControlStream( const GUID* pCategory, IBaseFilter* pFilter, REFERENCE_TIME* pstart, REFERENCE_TIME* pstop, WORD wStartCookie, WORD wStopCookie) = 0; virtual HRESULT STDMETHODCALLTYPE AllocCapFile( LPCOLESTR lpstr, DWORDLONG dwlSize) = 0; virtual HRESULT STDMETHODCALLTYPE CopyCaptureFile( LPOLESTR lpwstrOld, LPOLESTR lpwstrNew, int fAllowEscAbort, IAMCopyCaptureFileProgress* pCallback) = 0; }; #else typedef struct ICaptureGraphBuilderVtbl ICaptureGraphBuilderVtbl; struct ICaptureGraphBuilder { const ICaptureGraphBuilderVtbl* lpVtbl; }; struct ICaptureGraphBuilderVtbl { ICOM_MSVTABLE_COMPAT_FIELDS /*** IUnknown methods ***/ HRESULT (STDMETHODCALLTYPE *QueryInterface)( ICaptureGraphBuilder* This, REFIID riid, void** ppvObject); ULONG (STDMETHODCALLTYPE *AddRef)( ICaptureGraphBuilder* This); ULONG (STDMETHODCALLTYPE *Release)( ICaptureGraphBuilder* This); /*** ICaptureGraphBuilder methods ***/ HRESULT (STDMETHODCALLTYPE *SetFiltergraph)( ICaptureGraphBuilder* This, IGraphBuilder* pfg); HRESULT (STDMETHODCALLTYPE *GetFiltergraph)( ICaptureGraphBuilder* This, IGraphBuilder** ppfg); HRESULT (STDMETHODCALLTYPE *SetOutputFileName)( ICaptureGraphBuilder* This, const GUID* pType, LPCOLESTR lpstrFile, IBaseFilter** ppf, IFileSinkFilter** ppSink); HRESULT (STDMETHODCALLTYPE *FindInterface)( ICaptureGraphBuilder* This, const GUID* pCategory, IBaseFilter* pf, REFIID riid, void** ppint); HRESULT (STDMETHODCALLTYPE *RenderStream)( ICaptureGraphBuilder* This, const GUID* pCategory, IUnknown* pSource, IBaseFilter* pfCompressor, IBaseFilter* pfRenderer); HRESULT (STDMETHODCALLTYPE *ControlStream)( ICaptureGraphBuilder* This, const GUID* pCategory, IBaseFilter* pFilter, REFERENCE_TIME* pstart, REFERENCE_TIME* pstop, WORD wStartCookie, WORD wStopCookie); HRESULT (STDMETHODCALLTYPE *AllocCapFile)( ICaptureGraphBuilder* This, LPCOLESTR lpstr, DWORDLONG dwlSize); HRESULT (STDMETHODCALLTYPE *CopyCaptureFile)( ICaptureGraphBuilder* This, LPOLESTR lpwstrOld, LPOLESTR lpwstrNew, int fAllowEscAbort, IAMCopyCaptureFileProgress* pCallback); }; /*** IUnknown methods ***/ #define ICaptureGraphBuilder_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) #define ICaptureGraphBuilder_AddRef(p) (p)->lpVtbl->AddRef(p) #define ICaptureGraphBuilder_Release(p) (p)->lpVtbl->Release(p) /*** ICaptureGraphBuilder methods ***/ #define ICaptureGraphBuilder_SetFiltergraph(p,a) (p)->lpVtbl->SetFiltergraph(p,a) #define ICaptureGraphBuilder_GetFiltergraph(p,a) (p)->lpVtbl->GetFiltergraph(p,a) #define ICaptureGraphBuilder_SetOutputFileName(p,a,b,c,d) (p)->lpVtbl->SetOutputFileName(p,a,b,c,d) #define ICaptureGraphBuilder_FindInterface(p,a,b,c,d) (p)->lpVtbl->FindInterface(p,a,b,c,d) #define ICaptureGraphBuilder_RenderStream(p,a,b,c,d) (p)->lpVtbl->RenderStream(p,a,b,c,d) #define ICaptureGraphBuilder_ControlStream(p,a,b,c,d,e,f) (p)->lpVtbl->ControlStream(p,a,b,c,d,e,f) #define ICaptureGraphBuilder_AllocCapFile(p,a,b) (p)->lpVtbl->AllocCapFile(p,a,b) #define ICaptureGraphBuilder_CopyCaptureFile(p,a,b,c,d) (p)->lpVtbl->CopyCaptureFile(p,a,b,c,d) #endif #define ICaptureGraphBuilder_METHODS \ ICOM_MSVTABLE_COMPAT_FIELDS \ /*** IUnknown methods ***/ \ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \ STDMETHOD_(ULONG,AddRef)(THIS) PURE; \ STDMETHOD_(ULONG,Release)(THIS) PURE; \ /*** ICaptureGraphBuilder methods ***/ \ STDMETHOD_(HRESULT,SetFiltergraph)(THIS_ IGraphBuilder* pfg) PURE; \ STDMETHOD_(HRESULT,GetFiltergraph)(THIS_ IGraphBuilder** ppfg) PURE; \ STDMETHOD_(HRESULT,SetOutputFileName)(THIS_ const GUID* pType, LPCOLESTR lpstrFile, IBaseFilter** ppf, IFileSinkFilter** ppSink) PURE; \ STDMETHOD_(HRESULT,FindInterface)(THIS_ const GUID* pCategory, IBaseFilter* pf, REFIID riid, void** ppint) PURE; \ STDMETHOD_(HRESULT,RenderStream)(THIS_ const GUID* pCategory, IUnknown* pSource, IBaseFilter* pfCompressor, IBaseFilter* pfRenderer) PURE; \ STDMETHOD_(HRESULT,ControlStream)(THIS_ const GUID* pCategory, IBaseFilter* pFilter, REFERENCE_TIME* pstart, REFERENCE_TIME* pstop, WORD wStartCookie, WORD wStopCookie) PURE; \ STDMETHOD_(HRESULT,AllocCapFile)(THIS_ LPCOLESTR lpstr, DWORDLONG dwlSize) PURE; \ STDMETHOD_(HRESULT,CopyCaptureFile)(THIS_ LPOLESTR lpwstrOld, LPOLESTR lpwstrNew, int fAllowEscAbort, IAMCopyCaptureFileProgress* pCallback) PURE; HRESULT CALLBACK ICaptureGraphBuilder_SetFiltergraph_Proxy( ICaptureGraphBuilder* This, IGraphBuilder* pfg); void __RPC_STUB ICaptureGraphBuilder_SetFiltergraph_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK ICaptureGraphBuilder_GetFiltergraph_Proxy( ICaptureGraphBuilder* This, IGraphBuilder** ppfg); void __RPC_STUB ICaptureGraphBuilder_GetFiltergraph_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK ICaptureGraphBuilder_SetOutputFileName_Proxy( ICaptureGraphBuilder* This, const GUID* pType, LPCOLESTR lpstrFile, IBaseFilter** ppf, IFileSinkFilter** ppSink); void __RPC_STUB ICaptureGraphBuilder_SetOutputFileName_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK ICaptureGraphBuilder_RemoteFindInterface_Proxy( ICaptureGraphBuilder* This, const GUID* pCategory, IBaseFilter* pf, REFIID riid, IUnknown** ppint); void __RPC_STUB ICaptureGraphBuilder_RemoteFindInterface_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK ICaptureGraphBuilder_FindInterface_Proxy( ICaptureGraphBuilder* This, const GUID* pCategory, IBaseFilter* pf, REFIID riid, void** ppint); HRESULT __RPC_STUB ICaptureGraphBuilder_FindInterface_Stub( ICaptureGraphBuilder* This, const GUID* pCategory, IBaseFilter* pf, REFIID riid, IUnknown** ppint); HRESULT CALLBACK ICaptureGraphBuilder_RenderStream_Proxy( ICaptureGraphBuilder* This, const GUID* pCategory, IUnknown* pSource, IBaseFilter* pfCompressor, IBaseFilter* pfRenderer); void __RPC_STUB ICaptureGraphBuilder_RenderStream_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK ICaptureGraphBuilder_ControlStream_Proxy( ICaptureGraphBuilder* This, const GUID* pCategory, IBaseFilter* pFilter, REFERENCE_TIME* pstart, REFERENCE_TIME* pstop, WORD wStartCookie, WORD wStopCookie); void __RPC_STUB ICaptureGraphBuilder_ControlStream_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK ICaptureGraphBuilder_AllocCapFile_Proxy( ICaptureGraphBuilder* This, LPCOLESTR lpstr, DWORDLONG dwlSize); void __RPC_STUB ICaptureGraphBuilder_AllocCapFile_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK ICaptureGraphBuilder_CopyCaptureFile_Proxy( ICaptureGraphBuilder* This, LPOLESTR lpwstrOld, LPOLESTR lpwstrNew, int fAllowEscAbort, IAMCopyCaptureFileProgress* pCallback); void __RPC_STUB ICaptureGraphBuilder_CopyCaptureFile_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); #endif /* __ICaptureGraphBuilder_INTERFACE_DEFINED__ */ /***************************************************************************** * IAMCopyCaptureFileProgress interface */ #ifndef __IAMCopyCaptureFileProgress_INTERFACE_DEFINED__ #define __IAMCopyCaptureFileProgress_INTERFACE_DEFINED__ DEFINE_GUID(IID_IAMCopyCaptureFileProgress, 0x670d1d20, 0xa068, 0x11d0, 0xb3,0xf0, 0x00,0xaa,0x00,0x37,0x61,0xc5); #if defined(__cplusplus) && !defined(CINTERFACE) struct IAMCopyCaptureFileProgress : public IUnknown { virtual HRESULT STDMETHODCALLTYPE Progress( int iProgress) = 0; }; #else typedef struct IAMCopyCaptureFileProgressVtbl IAMCopyCaptureFileProgressVtbl; struct IAMCopyCaptureFileProgress { const IAMCopyCaptureFileProgressVtbl* lpVtbl; }; struct IAMCopyCaptureFileProgressVtbl { ICOM_MSVTABLE_COMPAT_FIELDS /*** IUnknown methods ***/ HRESULT (STDMETHODCALLTYPE *QueryInterface)( IAMCopyCaptureFileProgress* This, REFIID riid, void** ppvObject); ULONG (STDMETHODCALLTYPE *AddRef)( IAMCopyCaptureFileProgress* This); ULONG (STDMETHODCALLTYPE *Release)( IAMCopyCaptureFileProgress* This); /*** IAMCopyCaptureFileProgress methods ***/ HRESULT (STDMETHODCALLTYPE *Progress)( IAMCopyCaptureFileProgress* This, int iProgress); }; /*** IUnknown methods ***/ #define IAMCopyCaptureFileProgress_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) #define IAMCopyCaptureFileProgress_AddRef(p) (p)->lpVtbl->AddRef(p) #define IAMCopyCaptureFileProgress_Release(p) (p)->lpVtbl->Release(p) /*** IAMCopyCaptureFileProgress methods ***/ #define IAMCopyCaptureFileProgress_Progress(p,a) (p)->lpVtbl->Progress(p,a) #endif #define IAMCopyCaptureFileProgress_METHODS \ ICOM_MSVTABLE_COMPAT_FIELDS \ /*** IUnknown methods ***/ \ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \ STDMETHOD_(ULONG,AddRef)(THIS) PURE; \ STDMETHOD_(ULONG,Release)(THIS) PURE; \ /*** IAMCopyCaptureFileProgress methods ***/ \ STDMETHOD_(HRESULT,Progress)(THIS_ int iProgress) PURE; HRESULT CALLBACK IAMCopyCaptureFileProgress_Progress_Proxy( IAMCopyCaptureFileProgress* This, int iProgress); void __RPC_STUB IAMCopyCaptureFileProgress_Progress_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); #endif /* __IAMCopyCaptureFileProgress_INTERFACE_DEFINED__ */ /***************************************************************************** * ICaptureGraphBuilder2 interface */ #ifndef __ICaptureGraphBuilder2_INTERFACE_DEFINED__ #define __ICaptureGraphBuilder2_INTERFACE_DEFINED__ DEFINE_GUID(IID_ICaptureGraphBuilder2, 0x93e5a4e0, 0x2d50, 0x11d2, 0xab,0xfa, 0x00,0xa0,0xc9,0xc6,0xe3,0x8d); #if defined(__cplusplus) && !defined(CINTERFACE) struct ICaptureGraphBuilder2 : public IUnknown { virtual HRESULT STDMETHODCALLTYPE SetFiltergraph( IGraphBuilder* pfg) = 0; virtual HRESULT STDMETHODCALLTYPE GetFiltergraph( IGraphBuilder** ppfg) = 0; virtual HRESULT STDMETHODCALLTYPE SetOutputFileName( const GUID* pType, LPCOLESTR lpstrFile, IBaseFilter** ppf, IFileSinkFilter** ppSink) = 0; virtual HRESULT STDMETHODCALLTYPE FindInterface( const GUID* pCategory, const GUID* pType, IBaseFilter* pf, REFIID riid, void** ppint) = 0; virtual HRESULT STDMETHODCALLTYPE RenderStream( const GUID* pCategory, const GUID* pType, IUnknown* pSource, IBaseFilter* pfCompressor, IBaseFilter* pfRenderer) = 0; virtual HRESULT STDMETHODCALLTYPE ControlStream( const GUID* pCategory, const GUID* pType, IBaseFilter* pFilter, REFERENCE_TIME* pstart, REFERENCE_TIME* pstop, WORD wStartCookie, WORD wStopCookie) = 0; virtual HRESULT STDMETHODCALLTYPE AllocCapFile( LPCOLESTR lpstr, DWORDLONG dwlSize) = 0; virtual HRESULT STDMETHODCALLTYPE CopyCaptureFile( LPOLESTR lpwstrOld, LPOLESTR lpwstrNew, int fAllowEscAbort, IAMCopyCaptureFileProgress* pCallback) = 0; virtual HRESULT STDMETHODCALLTYPE FindPin( IUnknown* pSource, PIN_DIRECTION pindir, const GUID* pCategory, const GUID* pType, BOOL fUnconnected, int num, IPin** ppPin) = 0; }; #else typedef struct ICaptureGraphBuilder2Vtbl ICaptureGraphBuilder2Vtbl; struct ICaptureGraphBuilder2 { const ICaptureGraphBuilder2Vtbl* lpVtbl; }; struct ICaptureGraphBuilder2Vtbl { ICOM_MSVTABLE_COMPAT_FIELDS /*** IUnknown methods ***/ HRESULT (STDMETHODCALLTYPE *QueryInterface)( ICaptureGraphBuilder2* This, REFIID riid, void** ppvObject); ULONG (STDMETHODCALLTYPE *AddRef)( ICaptureGraphBuilder2* This); ULONG (STDMETHODCALLTYPE *Release)( ICaptureGraphBuilder2* This); /*** ICaptureGraphBuilder2 methods ***/ HRESULT (STDMETHODCALLTYPE *SetFiltergraph)( ICaptureGraphBuilder2* This, IGraphBuilder* pfg); HRESULT (STDMETHODCALLTYPE *GetFiltergraph)( ICaptureGraphBuilder2* This, IGraphBuilder** ppfg); HRESULT (STDMETHODCALLTYPE *SetOutputFileName)( ICaptureGraphBuilder2* This, const GUID* pType, LPCOLESTR lpstrFile, IBaseFilter** ppf, IFileSinkFilter** ppSink); HRESULT (STDMETHODCALLTYPE *FindInterface)( ICaptureGraphBuilder2* This, const GUID* pCategory, const GUID* pType, IBaseFilter* pf, REFIID riid, void** ppint); HRESULT (STDMETHODCALLTYPE *RenderStream)( ICaptureGraphBuilder2* This, const GUID* pCategory, const GUID* pType, IUnknown* pSource, IBaseFilter* pfCompressor, IBaseFilter* pfRenderer); HRESULT (STDMETHODCALLTYPE *ControlStream)( ICaptureGraphBuilder2* This, const GUID* pCategory, const GUID* pType, IBaseFilter* pFilter, REFERENCE_TIME* pstart, REFERENCE_TIME* pstop, WORD wStartCookie, WORD wStopCookie); HRESULT (STDMETHODCALLTYPE *AllocCapFile)( ICaptureGraphBuilder2* This, LPCOLESTR lpstr, DWORDLONG dwlSize); HRESULT (STDMETHODCALLTYPE *CopyCaptureFile)( ICaptureGraphBuilder2* This, LPOLESTR lpwstrOld, LPOLESTR lpwstrNew, int fAllowEscAbort, IAMCopyCaptureFileProgress* pCallback); HRESULT (STDMETHODCALLTYPE *FindPin)( ICaptureGraphBuilder2* This, IUnknown* pSource, PIN_DIRECTION pindir, const GUID* pCategory, const GUID* pType, BOOL fUnconnected, int num, IPin** ppPin); }; /*** IUnknown methods ***/ #define ICaptureGraphBuilder2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) #define ICaptureGraphBuilder2_AddRef(p) (p)->lpVtbl->AddRef(p) #define ICaptureGraphBuilder2_Release(p) (p)->lpVtbl->Release(p) /*** ICaptureGraphBuilder2 methods ***/ #define ICaptureGraphBuilder2_SetFiltergraph(p,a) (p)->lpVtbl->SetFiltergraph(p,a) #define ICaptureGraphBuilder2_GetFiltergraph(p,a) (p)->lpVtbl->GetFiltergraph(p,a) #define ICaptureGraphBuilder2_SetOutputFileName(p,a,b,c,d) (p)->lpVtbl->SetOutputFileName(p,a,b,c,d) #define ICaptureGraphBuilder2_FindInterface(p,a,b,c,d,e) (p)->lpVtbl->FindInterface(p,a,b,c,d,e) #define ICaptureGraphBuilder2_RenderStream(p,a,b,c,d,e) (p)->lpVtbl->RenderStream(p,a,b,c,d,e) #define ICaptureGraphBuilder2_ControlStream(p,a,b,c,d,e,f,g) (p)->lpVtbl->ControlStream(p,a,b,c,d,e,f,g) #define ICaptureGraphBuilder2_AllocCapFile(p,a,b) (p)->lpVtbl->AllocCapFile(p,a,b) #define ICaptureGraphBuilder2_CopyCaptureFile(p,a,b,c,d) (p)->lpVtbl->CopyCaptureFile(p,a,b,c,d) #define ICaptureGraphBuilder2_FindPin(p,a,b,c,d,e,f,g) (p)->lpVtbl->FindPin(p,a,b,c,d,e,f,g) #endif #define ICaptureGraphBuilder2_METHODS \ ICOM_MSVTABLE_COMPAT_FIELDS \ /*** IUnknown methods ***/ \ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \ STDMETHOD_(ULONG,AddRef)(THIS) PURE; \ STDMETHOD_(ULONG,Release)(THIS) PURE; \ /*** ICaptureGraphBuilder2 methods ***/ \ STDMETHOD_(HRESULT,SetFiltergraph)(THIS_ IGraphBuilder* pfg) PURE; \ STDMETHOD_(HRESULT,GetFiltergraph)(THIS_ IGraphBuilder** ppfg) PURE; \ STDMETHOD_(HRESULT,SetOutputFileName)(THIS_ const GUID* pType, LPCOLESTR lpstrFile, IBaseFilter** ppf, IFileSinkFilter** ppSink) PURE; \ STDMETHOD_(HRESULT,FindInterface)(THIS_ const GUID* pCategory, const GUID* pType, IBaseFilter* pf, REFIID riid, void** ppint) PURE; \ STDMETHOD_(HRESULT,RenderStream)(THIS_ const GUID* pCategory, const GUID* pType, IUnknown* pSource, IBaseFilter* pfCompressor, IBaseFilter* pfRenderer) PURE; \ STDMETHOD_(HRESULT,ControlStream)(THIS_ const GUID* pCategory, const GUID* pType, IBaseFilter* pFilter, REFERENCE_TIME* pstart, REFERENCE_TIME* pstop, WORD wStartCookie, WORD wStopCookie) PURE; \ STDMETHOD_(HRESULT,AllocCapFile)(THIS_ LPCOLESTR lpstr, DWORDLONG dwlSize) PURE; \ STDMETHOD_(HRESULT,CopyCaptureFile)(THIS_ LPOLESTR lpwstrOld, LPOLESTR lpwstrNew, int fAllowEscAbort, IAMCopyCaptureFileProgress* pCallback) PURE; \ STDMETHOD_(HRESULT,FindPin)(THIS_ IUnknown* pSource, PIN_DIRECTION pindir, const GUID* pCategory, const GUID* pType, BOOL fUnconnected, int num, IPin** ppPin) PURE; HRESULT CALLBACK ICaptureGraphBuilder2_SetFiltergraph_Proxy( ICaptureGraphBuilder2* This, IGraphBuilder* pfg); void __RPC_STUB ICaptureGraphBuilder2_SetFiltergraph_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK ICaptureGraphBuilder2_GetFiltergraph_Proxy( ICaptureGraphBuilder2* This, IGraphBuilder** ppfg); void __RPC_STUB ICaptureGraphBuilder2_GetFiltergraph_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK ICaptureGraphBuilder2_SetOutputFileName_Proxy( ICaptureGraphBuilder2* This, const GUID* pType, LPCOLESTR lpstrFile, IBaseFilter** ppf, IFileSinkFilter** ppSink); void __RPC_STUB ICaptureGraphBuilder2_SetOutputFileName_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK ICaptureGraphBuilder2_RemoteFindInterface_Proxy( ICaptureGraphBuilder2* This, const GUID* pCategory, const GUID* pType, IBaseFilter* pf, REFIID riid, IUnknown** ppint); void __RPC_STUB ICaptureGraphBuilder2_RemoteFindInterface_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK ICaptureGraphBuilder2_FindInterface_Proxy( ICaptureGraphBuilder2* This, const GUID* pCategory, const GUID* pType, IBaseFilter* pf, REFIID riid, void** ppint); HRESULT __RPC_STUB ICaptureGraphBuilder2_FindInterface_Stub( ICaptureGraphBuilder2* This, const GUID* pCategory, const GUID* pType, IBaseFilter* pf, REFIID riid, IUnknown** ppint); HRESULT CALLBACK ICaptureGraphBuilder2_RenderStream_Proxy( ICaptureGraphBuilder2* This, const GUID* pCategory, const GUID* pType, IUnknown* pSource, IBaseFilter* pfCompressor, IBaseFilter* pfRenderer); void __RPC_STUB ICaptureGraphBuilder2_RenderStream_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK ICaptureGraphBuilder2_ControlStream_Proxy( ICaptureGraphBuilder2* This, const GUID* pCategory, const GUID* pType, IBaseFilter* pFilter, REFERENCE_TIME* pstart, REFERENCE_TIME* pstop, WORD wStartCookie, WORD wStopCookie); void __RPC_STUB ICaptureGraphBuilder2_ControlStream_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK ICaptureGraphBuilder2_AllocCapFile_Proxy( ICaptureGraphBuilder2* This, LPCOLESTR lpstr, DWORDLONG dwlSize); void __RPC_STUB ICaptureGraphBuilder2_AllocCapFile_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK ICaptureGraphBuilder2_CopyCaptureFile_Proxy( ICaptureGraphBuilder2* This, LPOLESTR lpwstrOld, LPOLESTR lpwstrNew, int fAllowEscAbort, IAMCopyCaptureFileProgress* pCallback); void __RPC_STUB ICaptureGraphBuilder2_CopyCaptureFile_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK ICaptureGraphBuilder2_FindPin_Proxy( ICaptureGraphBuilder2* This, IUnknown* pSource, PIN_DIRECTION pindir, const GUID* pCategory, const GUID* pType, BOOL fUnconnected, int num, IPin** ppPin); void __RPC_STUB ICaptureGraphBuilder2_FindPin_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); #endif /* __ICaptureGraphBuilder2_INTERFACE_DEFINED__ */ enum _AM_RENSDEREXFLAGS { AM_RENDEREX_RENDERTOEXISTINGRENDERERS = 0x1 }; #ifndef __IFilterGraph2_FWD_DEFINED__ #define __IFilterGraph2_FWD_DEFINED__ typedef struct IFilterGraph2 IFilterGraph2; #endif /***************************************************************************** * IFilterGraph2 interface */ #ifndef __IFilterGraph2_INTERFACE_DEFINED__ #define __IFilterGraph2_INTERFACE_DEFINED__ DEFINE_GUID(IID_IFilterGraph2, 0x36b73882, 0xc2c8, 0x11cf, 0x8b,0x46, 0x00,0x80,0x5f,0x6c,0xef,0x60); #if defined(__cplusplus) && !defined(CINTERFACE) struct IFilterGraph2 : public IGraphBuilder { virtual HRESULT STDMETHODCALLTYPE AddSourceFilterForMoniker( IMoniker* pMoniker, IBindCtx* pCtx, LPCWSTR lpcwstrFilterName, IBaseFilter** ppFilter) = 0; virtual HRESULT STDMETHODCALLTYPE ReconnectEx( IPin* ppin, const AM_MEDIA_TYPE* pmt) = 0; virtual HRESULT STDMETHODCALLTYPE RenderEx( IPin* pPinOut, DWORD dwFlags, DWORD* pvContext) = 0; }; #else typedef struct IFilterGraph2Vtbl IFilterGraph2Vtbl; struct IFilterGraph2 { const IFilterGraph2Vtbl* lpVtbl; }; struct IFilterGraph2Vtbl { ICOM_MSVTABLE_COMPAT_FIELDS /*** IUnknown methods ***/ HRESULT (STDMETHODCALLTYPE *QueryInterface)( IFilterGraph2* This, REFIID riid, void** ppvObject); ULONG (STDMETHODCALLTYPE *AddRef)( IFilterGraph2* This); ULONG (STDMETHODCALLTYPE *Release)( IFilterGraph2* This); /*** IFilterGraph methods ***/ HRESULT (STDMETHODCALLTYPE *AddFilter)( IFilterGraph2* This, IBaseFilter* pFilter, LPCWSTR pName); HRESULT (STDMETHODCALLTYPE *RemoveFilter)( IFilterGraph2* This, IBaseFilter* pFilter); HRESULT (STDMETHODCALLTYPE *EnumFilters)( IFilterGraph2* This, IEnumFilters** ppEnum); HRESULT (STDMETHODCALLTYPE *FindFilterByName)( IFilterGraph2* This, LPCWSTR pName, IBaseFilter** ppFilter); HRESULT (STDMETHODCALLTYPE *ConnectDirect)( IFilterGraph2* This, IPin* ppinOut, IPin* ppinIn, const AM_MEDIA_TYPE* pmt); HRESULT (STDMETHODCALLTYPE *Reconnect)( IFilterGraph2* This, IPin* ppin); HRESULT (STDMETHODCALLTYPE *Disconnect)( IFilterGraph2* This, IPin* ppin); HRESULT (STDMETHODCALLTYPE *SetDefaultSyncSource)( IFilterGraph2* This); /*** IGraphBuilder methods ***/ HRESULT (STDMETHODCALLTYPE *Connect)( IFilterGraph2* This, IPin* ppinOut, IPin* ppinIn); HRESULT (STDMETHODCALLTYPE *Render)( IFilterGraph2* This, IPin* ppinOut); HRESULT (STDMETHODCALLTYPE *RenderFile)( IFilterGraph2* This, LPCWSTR lpcwstrFile, LPCWSTR lpcwstrPlayList); HRESULT (STDMETHODCALLTYPE *AddSourceFilter)( IFilterGraph2* This, LPCWSTR lpcwstrFileName, LPCWSTR lpcwstrFilterName, IBaseFilter** ppFilter); HRESULT (STDMETHODCALLTYPE *SetLogFile)( IFilterGraph2* This, DWORD_PTR hFile); HRESULT (STDMETHODCALLTYPE *Abort)( IFilterGraph2* This); HRESULT (STDMETHODCALLTYPE *ShouldOperationContinue)( IFilterGraph2* This); /*** IFilterGraph2 methods ***/ HRESULT (STDMETHODCALLTYPE *AddSourceFilterForMoniker)( IFilterGraph2* This, IMoniker* pMoniker, IBindCtx* pCtx, LPCWSTR lpcwstrFilterName, IBaseFilter** ppFilter); HRESULT (STDMETHODCALLTYPE *ReconnectEx)( IFilterGraph2* This, IPin* ppin, const AM_MEDIA_TYPE* pmt); HRESULT (STDMETHODCALLTYPE *RenderEx)( IFilterGraph2* This, IPin* pPinOut, DWORD dwFlags, DWORD* pvContext); }; /*** IUnknown methods ***/ #define IFilterGraph2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) #define IFilterGraph2_AddRef(p) (p)->lpVtbl->AddRef(p) #define IFilterGraph2_Release(p) (p)->lpVtbl->Release(p) /*** IFilterGraph methods ***/ #define IFilterGraph2_AddFilter(p,a,b) (p)->lpVtbl->AddFilter(p,a,b) #define IFilterGraph2_RemoveFilter(p,a) (p)->lpVtbl->RemoveFilter(p,a) #define IFilterGraph2_EnumFilters(p,a) (p)->lpVtbl->EnumFilters(p,a) #define IFilterGraph2_FindFilterByName(p,a,b) (p)->lpVtbl->FindFilterByName(p,a,b) #define IFilterGraph2_ConnectDirect(p,a,b,c) (p)->lpVtbl->ConnectDirect(p,a,b,c) #define IFilterGraph2_Reconnect(p,a) (p)->lpVtbl->Reconnect(p,a) #define IFilterGraph2_Disconnect(p,a) (p)->lpVtbl->Disconnect(p,a) #define IFilterGraph2_SetDefaultSyncSource(p) (p)->lpVtbl->SetDefaultSyncSource(p) /*** IGraphBuilder methods ***/ #define IFilterGraph2_Connect(p,a,b) (p)->lpVtbl->Connect(p,a,b) #define IFilterGraph2_Render(p,a) (p)->lpVtbl->Render(p,a) #define IFilterGraph2_RenderFile(p,a,b) (p)->lpVtbl->RenderFile(p,a,b) #define IFilterGraph2_AddSourceFilter(p,a,b,c) (p)->lpVtbl->AddSourceFilter(p,a,b,c) #define IFilterGraph2_SetLogFile(p,a) (p)->lpVtbl->SetLogFile(p,a) #define IFilterGraph2_Abort(p) (p)->lpVtbl->Abort(p) #define IFilterGraph2_ShouldOperationContinue(p) (p)->lpVtbl->ShouldOperationContinue(p) /*** IFilterGraph2 methods ***/ #define IFilterGraph2_AddSourceFilterForMoniker(p,a,b,c,d) (p)->lpVtbl->AddSourceFilterForMoniker(p,a,b,c,d) #define IFilterGraph2_ReconnectEx(p,a,b) (p)->lpVtbl->ReconnectEx(p,a,b) #define IFilterGraph2_RenderEx(p,a,b,c) (p)->lpVtbl->RenderEx(p,a,b,c) #endif #define IFilterGraph2_METHODS \ ICOM_MSVTABLE_COMPAT_FIELDS \ /*** IUnknown methods ***/ \ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \ STDMETHOD_(ULONG,AddRef)(THIS) PURE; \ STDMETHOD_(ULONG,Release)(THIS) PURE; \ /*** IFilterGraph methods ***/ \ STDMETHOD_(HRESULT,AddFilter)(THIS_ IBaseFilter* pFilter, LPCWSTR pName) PURE; \ STDMETHOD_(HRESULT,RemoveFilter)(THIS_ IBaseFilter* pFilter) PURE; \ STDMETHOD_(HRESULT,EnumFilters)(THIS_ IEnumFilters** ppEnum) PURE; \ STDMETHOD_(HRESULT,FindFilterByName)(THIS_ LPCWSTR pName, IBaseFilter** ppFilter) PURE; \ STDMETHOD_(HRESULT,ConnectDirect)(THIS_ IPin* ppinOut, IPin* ppinIn, const AM_MEDIA_TYPE* pmt) PURE; \ STDMETHOD_(HRESULT,Reconnect)(THIS_ IPin* ppin) PURE; \ STDMETHOD_(HRESULT,Disconnect)(THIS_ IPin* ppin) PURE; \ STDMETHOD_(HRESULT,SetDefaultSyncSource)(THIS) PURE; \ /*** IGraphBuilder methods ***/ \ STDMETHOD_(HRESULT,Connect)(THIS_ IPin* ppinOut, IPin* ppinIn) PURE; \ STDMETHOD_(HRESULT,Render)(THIS_ IPin* ppinOut) PURE; \ STDMETHOD_(HRESULT,RenderFile)(THIS_ LPCWSTR lpcwstrFile, LPCWSTR lpcwstrPlayList) PURE; \ STDMETHOD_(HRESULT,AddSourceFilter)(THIS_ LPCWSTR lpcwstrFileName, LPCWSTR lpcwstrFilterName, IBaseFilter** ppFilter) PURE; \ STDMETHOD_(HRESULT,SetLogFile)(THIS_ DWORD_PTR hFile) PURE; \ STDMETHOD_(HRESULT,Abort)(THIS) PURE; \ STDMETHOD_(HRESULT,ShouldOperationContinue)(THIS) PURE; \ /*** IFilterGraph2 methods ***/ \ STDMETHOD_(HRESULT,AddSourceFilterForMoniker)(THIS_ IMoniker* pMoniker, IBindCtx* pCtx, LPCWSTR lpcwstrFilterName, IBaseFilter** ppFilter) PURE; \ STDMETHOD_(HRESULT,ReconnectEx)(THIS_ IPin* ppin, const AM_MEDIA_TYPE* pmt) PURE; \ STDMETHOD_(HRESULT,RenderEx)(THIS_ IPin* pPinOut, DWORD dwFlags, DWORD* pvContext) PURE; HRESULT CALLBACK IFilterGraph2_AddSourceFilterForMoniker_Proxy( IFilterGraph2* This, IMoniker* pMoniker, IBindCtx* pCtx, LPCWSTR lpcwstrFilterName, IBaseFilter** ppFilter); void __RPC_STUB IFilterGraph2_AddSourceFilterForMoniker_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IFilterGraph2_ReconnectEx_Proxy( IFilterGraph2* This, IPin* ppin, const AM_MEDIA_TYPE* pmt); void __RPC_STUB IFilterGraph2_ReconnectEx_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IFilterGraph2_RenderEx_Proxy( IFilterGraph2* This, IPin* pPinOut, DWORD dwFlags, DWORD* pvContext); void __RPC_STUB IFilterGraph2_RenderEx_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); #endif /* __IFilterGraph2_INTERFACE_DEFINED__ */ #ifndef __IStreamBuilder_FWD_DEFINED__ #define __IStreamBuilder_FWD_DEFINED__ typedef struct IStreamBuilder IStreamBuilder; #endif /***************************************************************************** * IStreamBuilder interface */ #ifndef __IStreamBuilder_INTERFACE_DEFINED__ #define __IStreamBuilder_INTERFACE_DEFINED__ DEFINE_GUID(IID_IStreamBuilder, 0x56a868bf, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70); #if defined(__cplusplus) && !defined(CINTERFACE) struct IStreamBuilder : public IUnknown { virtual HRESULT STDMETHODCALLTYPE Render( IPin* ppinOut, IGraphBuilder* pGraph) = 0; virtual HRESULT STDMETHODCALLTYPE Backout( IPin* ppinOut, IGraphBuilder* pGraph) = 0; }; #else typedef struct IStreamBuilderVtbl IStreamBuilderVtbl; struct IStreamBuilder { const IStreamBuilderVtbl* lpVtbl; }; struct IStreamBuilderVtbl { ICOM_MSVTABLE_COMPAT_FIELDS /*** IUnknown methods ***/ HRESULT (STDMETHODCALLTYPE *QueryInterface)( IStreamBuilder* This, REFIID riid, void** ppvObject); ULONG (STDMETHODCALLTYPE *AddRef)( IStreamBuilder* This); ULONG (STDMETHODCALLTYPE *Release)( IStreamBuilder* This); /*** IStreamBuilder methods ***/ HRESULT (STDMETHODCALLTYPE *Render)( IStreamBuilder* This, IPin* ppinOut, IGraphBuilder* pGraph); HRESULT (STDMETHODCALLTYPE *Backout)( IStreamBuilder* This, IPin* ppinOut, IGraphBuilder* pGraph); }; /*** IUnknown methods ***/ #define IStreamBuilder_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) #define IStreamBuilder_AddRef(p) (p)->lpVtbl->AddRef(p) #define IStreamBuilder_Release(p) (p)->lpVtbl->Release(p) /*** IStreamBuilder methods ***/ #define IStreamBuilder_Render(p,a,b) (p)->lpVtbl->Render(p,a,b) #define IStreamBuilder_Backout(p,a,b) (p)->lpVtbl->Backout(p,a,b) #endif #define IStreamBuilder_METHODS \ ICOM_MSVTABLE_COMPAT_FIELDS \ /*** IUnknown methods ***/ \ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \ STDMETHOD_(ULONG,AddRef)(THIS) PURE; \ STDMETHOD_(ULONG,Release)(THIS) PURE; \ /*** IStreamBuilder methods ***/ \ STDMETHOD_(HRESULT,Render)(THIS_ IPin* ppinOut, IGraphBuilder* pGraph) PURE; \ STDMETHOD_(HRESULT,Backout)(THIS_ IPin* ppinOut, IGraphBuilder* pGraph) PURE; HRESULT CALLBACK IStreamBuilder_Render_Proxy( IStreamBuilder* This, IPin* ppinOut, IGraphBuilder* pGraph); void __RPC_STUB IStreamBuilder_Render_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IStreamBuilder_Backout_Proxy( IStreamBuilder* This, IPin* ppinOut, IGraphBuilder* pGraph); void __RPC_STUB IStreamBuilder_Backout_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); #endif /* __IStreamBuilder_INTERFACE_DEFINED__ */ #ifndef __IAsyncReader_FWD_DEFINED__ #define __IAsyncReader_FWD_DEFINED__ typedef struct IAsyncReader IAsyncReader; #endif /***************************************************************************** * IAsyncReader interface */ #ifndef __IAsyncReader_INTERFACE_DEFINED__ #define __IAsyncReader_INTERFACE_DEFINED__ DEFINE_GUID(IID_IAsyncReader, 0x56a868aa, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70); #if defined(__cplusplus) && !defined(CINTERFACE) struct IAsyncReader : public IUnknown { virtual HRESULT STDMETHODCALLTYPE RequestAllocator( IMemAllocator* pPreferred, ALLOCATOR_PROPERTIES* pProps, IMemAllocator** ppActual) = 0; virtual HRESULT STDMETHODCALLTYPE Request( IMediaSample* pSample, DWORD_PTR dwUser) = 0; virtual HRESULT STDMETHODCALLTYPE WaitForNext( DWORD dwTimeout, IMediaSample** ppSample, DWORD_PTR* pdwUser) = 0; virtual HRESULT STDMETHODCALLTYPE SyncReadAligned( IMediaSample* pSample) = 0; virtual HRESULT STDMETHODCALLTYPE SyncRead( LONGLONG llPosition, LONG lLength, BYTE* pBuffer) = 0; virtual HRESULT STDMETHODCALLTYPE Length( LONGLONG* pTotal, LONGLONG* pAvailable) = 0; virtual HRESULT STDMETHODCALLTYPE BeginFlush( ) = 0; virtual HRESULT STDMETHODCALLTYPE EndFlush( ) = 0; }; #else typedef struct IAsyncReaderVtbl IAsyncReaderVtbl; struct IAsyncReader { const IAsyncReaderVtbl* lpVtbl; }; struct IAsyncReaderVtbl { ICOM_MSVTABLE_COMPAT_FIELDS /*** IUnknown methods ***/ HRESULT (STDMETHODCALLTYPE *QueryInterface)( IAsyncReader* This, REFIID riid, void** ppvObject); ULONG (STDMETHODCALLTYPE *AddRef)( IAsyncReader* This); ULONG (STDMETHODCALLTYPE *Release)( IAsyncReader* This); /*** IAsyncReader methods ***/ HRESULT (STDMETHODCALLTYPE *RequestAllocator)( IAsyncReader* This, IMemAllocator* pPreferred, ALLOCATOR_PROPERTIES* pProps, IMemAllocator** ppActual); HRESULT (STDMETHODCALLTYPE *Request)( IAsyncReader* This, IMediaSample* pSample, DWORD_PTR dwUser); HRESULT (STDMETHODCALLTYPE *WaitForNext)( IAsyncReader* This, DWORD dwTimeout, IMediaSample** ppSample, DWORD_PTR* pdwUser); HRESULT (STDMETHODCALLTYPE *SyncReadAligned)( IAsyncReader* This, IMediaSample* pSample); HRESULT (STDMETHODCALLTYPE *SyncRead)( IAsyncReader* This, LONGLONG llPosition, LONG lLength, BYTE* pBuffer); HRESULT (STDMETHODCALLTYPE *Length)( IAsyncReader* This, LONGLONG* pTotal, LONGLONG* pAvailable); HRESULT (STDMETHODCALLTYPE *BeginFlush)( IAsyncReader* This); HRESULT (STDMETHODCALLTYPE *EndFlush)( IAsyncReader* This); }; /*** IUnknown methods ***/ #define IAsyncReader_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) #define IAsyncReader_AddRef(p) (p)->lpVtbl->AddRef(p) #define IAsyncReader_Release(p) (p)->lpVtbl->Release(p) /*** IAsyncReader methods ***/ #define IAsyncReader_RequestAllocator(p,a,b,c) (p)->lpVtbl->RequestAllocator(p,a,b,c) #define IAsyncReader_Request(p,a,b) (p)->lpVtbl->Request(p,a,b) #define IAsyncReader_WaitForNext(p,a,b,c) (p)->lpVtbl->WaitForNext(p,a,b,c) #define IAsyncReader_SyncReadAligned(p,a) (p)->lpVtbl->SyncReadAligned(p,a) #define IAsyncReader_SyncRead(p,a,b,c) (p)->lpVtbl->SyncRead(p,a,b,c) #define IAsyncReader_Length(p,a,b) (p)->lpVtbl->Length(p,a,b) #define IAsyncReader_BeginFlush(p) (p)->lpVtbl->BeginFlush(p) #define IAsyncReader_EndFlush(p) (p)->lpVtbl->EndFlush(p) #endif #define IAsyncReader_METHODS \ ICOM_MSVTABLE_COMPAT_FIELDS \ /*** IUnknown methods ***/ \ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \ STDMETHOD_(ULONG,AddRef)(THIS) PURE; \ STDMETHOD_(ULONG,Release)(THIS) PURE; \ /*** IAsyncReader methods ***/ \ STDMETHOD_(HRESULT,RequestAllocator)(THIS_ IMemAllocator* pPreferred, ALLOCATOR_PROPERTIES* pProps, IMemAllocator** ppActual) PURE; \ STDMETHOD_(HRESULT,Request)(THIS_ IMediaSample* pSample, DWORD_PTR dwUser) PURE; \ STDMETHOD_(HRESULT,WaitForNext)(THIS_ DWORD dwTimeout, IMediaSample** ppSample, DWORD_PTR* pdwUser) PURE; \ STDMETHOD_(HRESULT,SyncReadAligned)(THIS_ IMediaSample* pSample) PURE; \ STDMETHOD_(HRESULT,SyncRead)(THIS_ LONGLONG llPosition, LONG lLength, BYTE* pBuffer) PURE; \ STDMETHOD_(HRESULT,Length)(THIS_ LONGLONG* pTotal, LONGLONG* pAvailable) PURE; \ STDMETHOD_(HRESULT,BeginFlush)(THIS) PURE; \ STDMETHOD_(HRESULT,EndFlush)(THIS) PURE; HRESULT CALLBACK IAsyncReader_RequestAllocator_Proxy( IAsyncReader* This, IMemAllocator* pPreferred, ALLOCATOR_PROPERTIES* pProps, IMemAllocator** ppActual); void __RPC_STUB IAsyncReader_RequestAllocator_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IAsyncReader_Request_Proxy( IAsyncReader* This, IMediaSample* pSample, DWORD_PTR dwUser); void __RPC_STUB IAsyncReader_Request_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IAsyncReader_WaitForNext_Proxy( IAsyncReader* This, DWORD dwTimeout, IMediaSample** ppSample, DWORD_PTR* pdwUser); void __RPC_STUB IAsyncReader_WaitForNext_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IAsyncReader_SyncReadAligned_Proxy( IAsyncReader* This, IMediaSample* pSample); void __RPC_STUB IAsyncReader_SyncReadAligned_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IAsyncReader_SyncRead_Proxy( IAsyncReader* This, LONGLONG llPosition, LONG lLength, BYTE* pBuffer); void __RPC_STUB IAsyncReader_SyncRead_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IAsyncReader_Length_Proxy( IAsyncReader* This, LONGLONG* pTotal, LONGLONG* pAvailable); void __RPC_STUB IAsyncReader_Length_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IAsyncReader_BeginFlush_Proxy( IAsyncReader* This); void __RPC_STUB IAsyncReader_BeginFlush_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IAsyncReader_EndFlush_Proxy( IAsyncReader* This); void __RPC_STUB IAsyncReader_EndFlush_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); #endif /* __IAsyncReader_INTERFACE_DEFINED__ */ #ifndef __IGraphVersion_FWD_DEFINED__ #define __IGraphVersion_FWD_DEFINED__ typedef struct IGraphVersion IGraphVersion; #endif /***************************************************************************** * IGraphVersion interface */ #ifndef __IGraphVersion_INTERFACE_DEFINED__ #define __IGraphVersion_INTERFACE_DEFINED__ DEFINE_GUID(IID_IGraphVersion, 0x56a868ab, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70); #if defined(__cplusplus) && !defined(CINTERFACE) struct IGraphVersion : public IUnknown { virtual HRESULT STDMETHODCALLTYPE QueryVersion( LONG* pVersion) = 0; }; #else typedef struct IGraphVersionVtbl IGraphVersionVtbl; struct IGraphVersion { const IGraphVersionVtbl* lpVtbl; }; struct IGraphVersionVtbl { ICOM_MSVTABLE_COMPAT_FIELDS /*** IUnknown methods ***/ HRESULT (STDMETHODCALLTYPE *QueryInterface)( IGraphVersion* This, REFIID riid, void** ppvObject); ULONG (STDMETHODCALLTYPE *AddRef)( IGraphVersion* This); ULONG (STDMETHODCALLTYPE *Release)( IGraphVersion* This); /*** IGraphVersion methods ***/ HRESULT (STDMETHODCALLTYPE *QueryVersion)( IGraphVersion* This, LONG* pVersion); }; /*** IUnknown methods ***/ #define IGraphVersion_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) #define IGraphVersion_AddRef(p) (p)->lpVtbl->AddRef(p) #define IGraphVersion_Release(p) (p)->lpVtbl->Release(p) /*** IGraphVersion methods ***/ #define IGraphVersion_QueryVersion(p,a) (p)->lpVtbl->QueryVersion(p,a) #endif #define IGraphVersion_METHODS \ ICOM_MSVTABLE_COMPAT_FIELDS \ /*** IUnknown methods ***/ \ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \ STDMETHOD_(ULONG,AddRef)(THIS) PURE; \ STDMETHOD_(ULONG,Release)(THIS) PURE; \ /*** IGraphVersion methods ***/ \ STDMETHOD_(HRESULT,QueryVersion)(THIS_ LONG* pVersion) PURE; HRESULT CALLBACK IGraphVersion_QueryVersion_Proxy( IGraphVersion* This, LONG* pVersion); void __RPC_STUB IGraphVersion_QueryVersion_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); #endif /* __IGraphVersion_INTERFACE_DEFINED__ */ #ifndef __IResourceConsumer_FWD_DEFINED__ #define __IResourceConsumer_FWD_DEFINED__ typedef struct IResourceConsumer IResourceConsumer; #endif /***************************************************************************** * IResourceConsumer interface */ #ifndef __IResourceConsumer_INTERFACE_DEFINED__ #define __IResourceConsumer_INTERFACE_DEFINED__ DEFINE_GUID(IID_IResourceConsumer, 0x56a868ad, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70); #if defined(__cplusplus) && !defined(CINTERFACE) struct IResourceConsumer : public IUnknown { virtual HRESULT STDMETHODCALLTYPE AcquireResource( LONG idResource) = 0; virtual HRESULT STDMETHODCALLTYPE ReleaseResource( LONG idResource) = 0; }; #else typedef struct IResourceConsumerVtbl IResourceConsumerVtbl; struct IResourceConsumer { const IResourceConsumerVtbl* lpVtbl; }; struct IResourceConsumerVtbl { ICOM_MSVTABLE_COMPAT_FIELDS /*** IUnknown methods ***/ HRESULT (STDMETHODCALLTYPE *QueryInterface)( IResourceConsumer* This, REFIID riid, void** ppvObject); ULONG (STDMETHODCALLTYPE *AddRef)( IResourceConsumer* This); ULONG (STDMETHODCALLTYPE *Release)( IResourceConsumer* This); /*** IResourceConsumer methods ***/ HRESULT (STDMETHODCALLTYPE *AcquireResource)( IResourceConsumer* This, LONG idResource); HRESULT (STDMETHODCALLTYPE *ReleaseResource)( IResourceConsumer* This, LONG idResource); }; /*** IUnknown methods ***/ #define IResourceConsumer_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) #define IResourceConsumer_AddRef(p) (p)->lpVtbl->AddRef(p) #define IResourceConsumer_Release(p) (p)->lpVtbl->Release(p) /*** IResourceConsumer methods ***/ #define IResourceConsumer_AcquireResource(p,a) (p)->lpVtbl->AcquireResource(p,a) #define IResourceConsumer_ReleaseResource(p,a) (p)->lpVtbl->ReleaseResource(p,a) #endif #define IResourceConsumer_METHODS \ ICOM_MSVTABLE_COMPAT_FIELDS \ /*** IUnknown methods ***/ \ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \ STDMETHOD_(ULONG,AddRef)(THIS) PURE; \ STDMETHOD_(ULONG,Release)(THIS) PURE; \ /*** IResourceConsumer methods ***/ \ STDMETHOD_(HRESULT,AcquireResource)(THIS_ LONG idResource) PURE; \ STDMETHOD_(HRESULT,ReleaseResource)(THIS_ LONG idResource) PURE; HRESULT CALLBACK IResourceConsumer_AcquireResource_Proxy( IResourceConsumer* This, LONG idResource); void __RPC_STUB IResourceConsumer_AcquireResource_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IResourceConsumer_ReleaseResource_Proxy( IResourceConsumer* This, LONG idResource); void __RPC_STUB IResourceConsumer_ReleaseResource_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); #endif /* __IResourceConsumer_INTERFACE_DEFINED__ */ #ifndef __IResourceManager_FWD_DEFINED__ #define __IResourceManager_FWD_DEFINED__ typedef struct IResourceManager IResourceManager; #endif /***************************************************************************** * IResourceManager interface */ #ifndef __IResourceManager_INTERFACE_DEFINED__ #define __IResourceManager_INTERFACE_DEFINED__ DEFINE_GUID(IID_IResourceManager, 0x56a868ac, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70); #if defined(__cplusplus) && !defined(CINTERFACE) struct IResourceManager : public IUnknown { virtual HRESULT STDMETHODCALLTYPE Register( LPCWSTR pName, LONG cResource, LONG* plToken) = 0; virtual HRESULT STDMETHODCALLTYPE RegisterGroup( LPCWSTR pName, LONG cResource, LONG* palTokens, LONG* plToken) = 0; virtual HRESULT STDMETHODCALLTYPE RequestResource( LONG idResource, IUnknown* pFocusObject, IResourceConsumer* pConsumer) = 0; virtual HRESULT STDMETHODCALLTYPE NotifyAcquire( LONG idResource, IResourceConsumer* pConsumer, HRESULT hr) = 0; virtual HRESULT STDMETHODCALLTYPE NotifyRelease( LONG idResource, IResourceConsumer* pConsumer, BOOL bStillWant) = 0; virtual HRESULT STDMETHODCALLTYPE CancelRequest( LONG idResource, IResourceConsumer* pConsumer) = 0; virtual HRESULT STDMETHODCALLTYPE SetFocus( IUnknown* pFocusObject) = 0; virtual HRESULT STDMETHODCALLTYPE ReleaseFocus( IUnknown* pFocusObject) = 0; }; #else typedef struct IResourceManagerVtbl IResourceManagerVtbl; struct IResourceManager { const IResourceManagerVtbl* lpVtbl; }; struct IResourceManagerVtbl { ICOM_MSVTABLE_COMPAT_FIELDS /*** IUnknown methods ***/ HRESULT (STDMETHODCALLTYPE *QueryInterface)( IResourceManager* This, REFIID riid, void** ppvObject); ULONG (STDMETHODCALLTYPE *AddRef)( IResourceManager* This); ULONG (STDMETHODCALLTYPE *Release)( IResourceManager* This); /*** IResourceManager methods ***/ HRESULT (STDMETHODCALLTYPE *Register)( IResourceManager* This, LPCWSTR pName, LONG cResource, LONG* plToken); HRESULT (STDMETHODCALLTYPE *RegisterGroup)( IResourceManager* This, LPCWSTR pName, LONG cResource, LONG* palTokens, LONG* plToken); HRESULT (STDMETHODCALLTYPE *RequestResource)( IResourceManager* This, LONG idResource, IUnknown* pFocusObject, IResourceConsumer* pConsumer); HRESULT (STDMETHODCALLTYPE *NotifyAcquire)( IResourceManager* This, LONG idResource, IResourceConsumer* pConsumer, HRESULT hr); HRESULT (STDMETHODCALLTYPE *NotifyRelease)( IResourceManager* This, LONG idResource, IResourceConsumer* pConsumer, BOOL bStillWant); HRESULT (STDMETHODCALLTYPE *CancelRequest)( IResourceManager* This, LONG idResource, IResourceConsumer* pConsumer); HRESULT (STDMETHODCALLTYPE *SetFocus)( IResourceManager* This, IUnknown* pFocusObject); HRESULT (STDMETHODCALLTYPE *ReleaseFocus)( IResourceManager* This, IUnknown* pFocusObject); }; /*** IUnknown methods ***/ #define IResourceManager_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) #define IResourceManager_AddRef(p) (p)->lpVtbl->AddRef(p) #define IResourceManager_Release(p) (p)->lpVtbl->Release(p) /*** IResourceManager methods ***/ #define IResourceManager_Register(p,a,b,c) (p)->lpVtbl->Register(p,a,b,c) #define IResourceManager_RegisterGroup(p,a,b,c,d) (p)->lpVtbl->RegisterGroup(p,a,b,c,d) #define IResourceManager_RequestResource(p,a,b,c) (p)->lpVtbl->RequestResource(p,a,b,c) #define IResourceManager_NotifyAcquire(p,a,b,c) (p)->lpVtbl->NotifyAcquire(p,a,b,c) #define IResourceManager_NotifyRelease(p,a,b,c) (p)->lpVtbl->NotifyRelease(p,a,b,c) #define IResourceManager_CancelRequest(p,a,b) (p)->lpVtbl->CancelRequest(p,a,b) #define IResourceManager_SetFocus(p,a) (p)->lpVtbl->SetFocus(p,a) #define IResourceManager_ReleaseFocus(p,a) (p)->lpVtbl->ReleaseFocus(p,a) #endif #define IResourceManager_METHODS \ ICOM_MSVTABLE_COMPAT_FIELDS \ /*** IUnknown methods ***/ \ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \ STDMETHOD_(ULONG,AddRef)(THIS) PURE; \ STDMETHOD_(ULONG,Release)(THIS) PURE; \ /*** IResourceManager methods ***/ \ STDMETHOD_(HRESULT,Register)(THIS_ LPCWSTR pName, LONG cResource, LONG* plToken) PURE; \ STDMETHOD_(HRESULT,RegisterGroup)(THIS_ LPCWSTR pName, LONG cResource, LONG* palTokens, LONG* plToken) PURE; \ STDMETHOD_(HRESULT,RequestResource)(THIS_ LONG idResource, IUnknown* pFocusObject, IResourceConsumer* pConsumer) PURE; \ STDMETHOD_(HRESULT,NotifyAcquire)(THIS_ LONG idResource, IResourceConsumer* pConsumer, HRESULT hr) PURE; \ STDMETHOD_(HRESULT,NotifyRelease)(THIS_ LONG idResource, IResourceConsumer* pConsumer, BOOL bStillWant) PURE; \ STDMETHOD_(HRESULT,CancelRequest)(THIS_ LONG idResource, IResourceConsumer* pConsumer) PURE; \ STDMETHOD_(HRESULT,SetFocus)(THIS_ IUnknown* pFocusObject) PURE; \ STDMETHOD_(HRESULT,ReleaseFocus)(THIS_ IUnknown* pFocusObject) PURE; HRESULT CALLBACK IResourceManager_Register_Proxy( IResourceManager* This, LPCWSTR pName, LONG cResource, LONG* plToken); void __RPC_STUB IResourceManager_Register_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IResourceManager_RegisterGroup_Proxy( IResourceManager* This, LPCWSTR pName, LONG cResource, LONG* palTokens, LONG* plToken); void __RPC_STUB IResourceManager_RegisterGroup_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IResourceManager_RequestResource_Proxy( IResourceManager* This, LONG idResource, IUnknown* pFocusObject, IResourceConsumer* pConsumer); void __RPC_STUB IResourceManager_RequestResource_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IResourceManager_NotifyAcquire_Proxy( IResourceManager* This, LONG idResource, IResourceConsumer* pConsumer, HRESULT hr); void __RPC_STUB IResourceManager_NotifyAcquire_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IResourceManager_NotifyRelease_Proxy( IResourceManager* This, LONG idResource, IResourceConsumer* pConsumer, BOOL bStillWant); void __RPC_STUB IResourceManager_NotifyRelease_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IResourceManager_CancelRequest_Proxy( IResourceManager* This, LONG idResource, IResourceConsumer* pConsumer); void __RPC_STUB IResourceManager_CancelRequest_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IResourceManager_SetFocus_Proxy( IResourceManager* This, IUnknown* pFocusObject); void __RPC_STUB IResourceManager_SetFocus_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IResourceManager_ReleaseFocus_Proxy( IResourceManager* This, IUnknown* pFocusObject); void __RPC_STUB IResourceManager_ReleaseFocus_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); #endif /* __IResourceManager_INTERFACE_DEFINED__ */ #ifndef _IKsPropertySet_ #define _IKsPropertySet_ #define KSPROPERTY_SUPPORT_GET 1 #define KSPROPERTY_SUPPORT_SET 2 /***************************************************************************** * IKsPropertySet interface */ #ifndef __IKsPropertySet_INTERFACE_DEFINED__ #define __IKsPropertySet_INTERFACE_DEFINED__ DEFINE_GUID(IID_IKsPropertySet, 0x31efac30, 0x515c, 0x11d0, 0xa9,0xaa, 0x00,0xaa,0x00,0x61,0xbe,0x93); #if defined(__cplusplus) && !defined(CINTERFACE) struct IKsPropertySet : public IUnknown { virtual HRESULT STDMETHODCALLTYPE Set( REFGUID guidPropSet, DWORD dwPropID, LPVOID pInstanceData, DWORD cbInstanceData, LPVOID pPropData, DWORD cbPropData) = 0; virtual HRESULT STDMETHODCALLTYPE Get( REFGUID guidPropSet, DWORD dwPropID, LPVOID pInstanceData, DWORD cbInstanceData, LPVOID pPropData, DWORD cbPropData, DWORD* pcbReturned) = 0; virtual HRESULT STDMETHODCALLTYPE QuerySupported( REFGUID guidPropSet, DWORD dwPropID, DWORD* pTypeSupport) = 0; }; #else typedef struct IKsPropertySetVtbl IKsPropertySetVtbl; struct IKsPropertySet { const IKsPropertySetVtbl* lpVtbl; }; struct IKsPropertySetVtbl { ICOM_MSVTABLE_COMPAT_FIELDS /*** IUnknown methods ***/ HRESULT (STDMETHODCALLTYPE *QueryInterface)( IKsPropertySet* This, REFIID riid, void** ppvObject); ULONG (STDMETHODCALLTYPE *AddRef)( IKsPropertySet* This); ULONG (STDMETHODCALLTYPE *Release)( IKsPropertySet* This); /*** IKsPropertySet methods ***/ HRESULT (STDMETHODCALLTYPE *Set)( IKsPropertySet* This, REFGUID guidPropSet, DWORD dwPropID, LPVOID pInstanceData, DWORD cbInstanceData, LPVOID pPropData, DWORD cbPropData); HRESULT (STDMETHODCALLTYPE *Get)( IKsPropertySet* This, REFGUID guidPropSet, DWORD dwPropID, LPVOID pInstanceData, DWORD cbInstanceData, LPVOID pPropData, DWORD cbPropData, DWORD* pcbReturned); HRESULT (STDMETHODCALLTYPE *QuerySupported)( IKsPropertySet* This, REFGUID guidPropSet, DWORD dwPropID, DWORD* pTypeSupport); }; /*** IUnknown methods ***/ #define IKsPropertySet_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) #define IKsPropertySet_AddRef(p) (p)->lpVtbl->AddRef(p) #define IKsPropertySet_Release(p) (p)->lpVtbl->Release(p) /*** IKsPropertySet methods ***/ #define IKsPropertySet_Set(p,a,b,c,d,e,f) (p)->lpVtbl->Set(p,a,b,c,d,e,f) #define IKsPropertySet_Get(p,a,b,c,d,e,f,g) (p)->lpVtbl->Get(p,a,b,c,d,e,f,g) #define IKsPropertySet_QuerySupported(p,a,b,c) (p)->lpVtbl->QuerySupported(p,a,b,c) #endif #define IKsPropertySet_METHODS \ ICOM_MSVTABLE_COMPAT_FIELDS \ /*** IUnknown methods ***/ \ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \ STDMETHOD_(ULONG,AddRef)(THIS) PURE; \ STDMETHOD_(ULONG,Release)(THIS) PURE; \ /*** IKsPropertySet methods ***/ \ STDMETHOD_(HRESULT,Set)(THIS_ REFGUID guidPropSet, DWORD dwPropID, LPVOID pInstanceData, DWORD cbInstanceData, LPVOID pPropData, DWORD cbPropData) PURE; \ STDMETHOD_(HRESULT,Get)(THIS_ REFGUID guidPropSet, DWORD dwPropID, LPVOID pInstanceData, DWORD cbInstanceData, LPVOID pPropData, DWORD cbPropData, DWORD* pcbReturned) PURE; \ STDMETHOD_(HRESULT,QuerySupported)(THIS_ REFGUID guidPropSet, DWORD dwPropID, DWORD* pTypeSupport) PURE; HRESULT CALLBACK IKsPropertySet_Set_Proxy( IKsPropertySet* This, REFGUID guidPropSet, DWORD dwPropID, LPVOID pInstanceData, DWORD cbInstanceData, LPVOID pPropData, DWORD cbPropData); void __RPC_STUB IKsPropertySet_Set_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IKsPropertySet_Get_Proxy( IKsPropertySet* This, REFGUID guidPropSet, DWORD dwPropID, LPVOID pInstanceData, DWORD cbInstanceData, LPVOID pPropData, DWORD cbPropData, DWORD* pcbReturned); void __RPC_STUB IKsPropertySet_Get_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IKsPropertySet_QuerySupported_Proxy( IKsPropertySet* This, REFGUID guidPropSet, DWORD dwPropID, DWORD* pTypeSupport); void __RPC_STUB IKsPropertySet_QuerySupported_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); #endif /* __IKsPropertySet_INTERFACE_DEFINED__ */ #endif /* _IKsPropertySet_ */ #ifndef __IPinConnection_FWD_DEFINED__ #define __IPinConnection_FWD_DEFINED__ typedef struct IPinConnection IPinConnection; #endif #ifndef __IPinFlowControl_FWD_DEFINED__ #define __IPinFlowControl_FWD_DEFINED__ typedef struct IPinFlowControl IPinFlowControl; #endif #ifndef __IGraphConfig_FWD_DEFINED__ #define __IGraphConfig_FWD_DEFINED__ typedef struct IGraphConfig IGraphConfig; #endif #ifndef __IGraphConfigCallback_FWD_DEFINED__ #define __IGraphConfigCallback_FWD_DEFINED__ typedef struct IGraphConfigCallback IGraphConfigCallback; #endif /***************************************************************************** * IPinConnection interface */ #ifndef __IPinConnection_INTERFACE_DEFINED__ #define __IPinConnection_INTERFACE_DEFINED__ DEFINE_GUID(IID_IPinConnection, 0x4a9a62d3, 0x27d4, 0x403d, 0x91,0xe9, 0x89,0xf5,0x40,0xe5,0x55,0x34); #if defined(__cplusplus) && !defined(CINTERFACE) struct IPinConnection : public IUnknown { virtual HRESULT STDMETHODCALLTYPE DynamicQueryAccept( const AM_MEDIA_TYPE* pmt) = 0; virtual HRESULT STDMETHODCALLTYPE NotifyEndOfStream( HANDLE hNotifyEvent) = 0; virtual HRESULT STDMETHODCALLTYPE IsEndPin( ) = 0; virtual HRESULT STDMETHODCALLTYPE DynamicDisconnect( ) = 0; }; #else typedef struct IPinConnectionVtbl IPinConnectionVtbl; struct IPinConnection { const IPinConnectionVtbl* lpVtbl; }; struct IPinConnectionVtbl { ICOM_MSVTABLE_COMPAT_FIELDS /*** IUnknown methods ***/ HRESULT (STDMETHODCALLTYPE *QueryInterface)( IPinConnection* This, REFIID riid, void** ppvObject); ULONG (STDMETHODCALLTYPE *AddRef)( IPinConnection* This); ULONG (STDMETHODCALLTYPE *Release)( IPinConnection* This); /*** IPinConnection methods ***/ HRESULT (STDMETHODCALLTYPE *DynamicQueryAccept)( IPinConnection* This, const AM_MEDIA_TYPE* pmt); HRESULT (STDMETHODCALLTYPE *NotifyEndOfStream)( IPinConnection* This, HANDLE hNotifyEvent); HRESULT (STDMETHODCALLTYPE *IsEndPin)( IPinConnection* This); HRESULT (STDMETHODCALLTYPE *DynamicDisconnect)( IPinConnection* This); }; /*** IUnknown methods ***/ #define IPinConnection_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) #define IPinConnection_AddRef(p) (p)->lpVtbl->AddRef(p) #define IPinConnection_Release(p) (p)->lpVtbl->Release(p) /*** IPinConnection methods ***/ #define IPinConnection_DynamicQueryAccept(p,a) (p)->lpVtbl->DynamicQueryAccept(p,a) #define IPinConnection_NotifyEndOfStream(p,a) (p)->lpVtbl->NotifyEndOfStream(p,a) #define IPinConnection_IsEndPin(p) (p)->lpVtbl->IsEndPin(p) #define IPinConnection_DynamicDisconnect(p) (p)->lpVtbl->DynamicDisconnect(p) #endif #define IPinConnection_METHODS \ ICOM_MSVTABLE_COMPAT_FIELDS \ /*** IUnknown methods ***/ \ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \ STDMETHOD_(ULONG,AddRef)(THIS) PURE; \ STDMETHOD_(ULONG,Release)(THIS) PURE; \ /*** IPinConnection methods ***/ \ STDMETHOD_(HRESULT,DynamicQueryAccept)(THIS_ const AM_MEDIA_TYPE* pmt) PURE; \ STDMETHOD_(HRESULT,NotifyEndOfStream)(THIS_ HANDLE hNotifyEvent) PURE; \ STDMETHOD_(HRESULT,IsEndPin)(THIS) PURE; \ STDMETHOD_(HRESULT,DynamicDisconnect)(THIS) PURE; HRESULT CALLBACK IPinConnection_DynamicQueryAccept_Proxy( IPinConnection* This, const AM_MEDIA_TYPE* pmt); void __RPC_STUB IPinConnection_DynamicQueryAccept_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IPinConnection_NotifyEndOfStream_Proxy( IPinConnection* This, HANDLE hNotifyEvent); void __RPC_STUB IPinConnection_NotifyEndOfStream_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IPinConnection_IsEndPin_Proxy( IPinConnection* This); void __RPC_STUB IPinConnection_IsEndPin_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IPinConnection_DynamicDisconnect_Proxy( IPinConnection* This); void __RPC_STUB IPinConnection_DynamicDisconnect_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); #endif /* __IPinConnection_INTERFACE_DEFINED__ */ /***************************************************************************** * IPinFlowControl interface */ #ifndef __IPinFlowControl_INTERFACE_DEFINED__ #define __IPinFlowControl_INTERFACE_DEFINED__ DEFINE_GUID(IID_IPinFlowControl, 0xc56e9858, 0xdbf3, 0x4f6b, 0x81,0x19, 0x38,0x4a,0xf2,0x06,0x0d,0xeb); #if defined(__cplusplus) && !defined(CINTERFACE) struct IPinFlowControl : public IUnknown { virtual HRESULT STDMETHODCALLTYPE Block( DWORD dwBlockFlags, HANDLE hEvent) = 0; }; #else typedef struct IPinFlowControlVtbl IPinFlowControlVtbl; struct IPinFlowControl { const IPinFlowControlVtbl* lpVtbl; }; struct IPinFlowControlVtbl { ICOM_MSVTABLE_COMPAT_FIELDS /*** IUnknown methods ***/ HRESULT (STDMETHODCALLTYPE *QueryInterface)( IPinFlowControl* This, REFIID riid, void** ppvObject); ULONG (STDMETHODCALLTYPE *AddRef)( IPinFlowControl* This); ULONG (STDMETHODCALLTYPE *Release)( IPinFlowControl* This); /*** IPinFlowControl methods ***/ HRESULT (STDMETHODCALLTYPE *Block)( IPinFlowControl* This, DWORD dwBlockFlags, HANDLE hEvent); }; /*** IUnknown methods ***/ #define IPinFlowControl_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) #define IPinFlowControl_AddRef(p) (p)->lpVtbl->AddRef(p) #define IPinFlowControl_Release(p) (p)->lpVtbl->Release(p) /*** IPinFlowControl methods ***/ #define IPinFlowControl_Block(p,a,b) (p)->lpVtbl->Block(p,a,b) #endif #define IPinFlowControl_METHODS \ ICOM_MSVTABLE_COMPAT_FIELDS \ /*** IUnknown methods ***/ \ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \ STDMETHOD_(ULONG,AddRef)(THIS) PURE; \ STDMETHOD_(ULONG,Release)(THIS) PURE; \ /*** IPinFlowControl methods ***/ \ STDMETHOD_(HRESULT,Block)(THIS_ DWORD dwBlockFlags, HANDLE hEvent) PURE; HRESULT CALLBACK IPinFlowControl_Block_Proxy( IPinFlowControl* This, DWORD dwBlockFlags, HANDLE hEvent); void __RPC_STUB IPinFlowControl_Block_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); #endif /* __IPinFlowControl_INTERFACE_DEFINED__ */ enum _AM_PIN_FLOW_CONTROL_BLOCK_FLAGS { AM_PIN_FLOW_CONTROL_BLOCK = 0x1 }; typedef enum _AM_GRAPH_CONFIG_RECONNECT_FLAGS { AM_GRAPH_CONFIG_RECONNECT_DIRECTCONNECT = 0x1, AM_GRAPH_CONFIG_RECONNECT_CACHE_REMOVED_FILTERS = 0x2, AM_GRAPH_CONFIG_RECONNECT_USE_ONLY_CACHED_FILTERS = 0x4 } AM_GRAPH_CONFIG_RECONNECT_FLAGS; enum _REM_FILTER_FLAGS { REMFILTERF_LEAVECONNECTED = 0x1 }; typedef enum _AM_FILTER_FLAGS { AM_FILTER_FLAGS_REMOVABLE = 0x1 } AM_FILTER_FLAGS; /***************************************************************************** * IGraphConfig interface */ #ifndef __IGraphConfig_INTERFACE_DEFINED__ #define __IGraphConfig_INTERFACE_DEFINED__ DEFINE_GUID(IID_IGraphConfig, 0x03a1eb8e, 0x32bf, 0x4245, 0x85,0x02, 0x11,0x4d,0x08,0xa9,0xcb,0x88); #if defined(__cplusplus) && !defined(CINTERFACE) struct IGraphConfig : public IUnknown { virtual HRESULT STDMETHODCALLTYPE Reconnect( IPin* pOutputPin, IPin* pInputPin, const AM_MEDIA_TYPE* pmtFirstConnection, IBaseFilter* pUsingFilter, HANDLE hAbortEvent, DWORD dwFlags) = 0; virtual HRESULT STDMETHODCALLTYPE Reconfigure( IGraphConfigCallback* pCallback, PVOID pvContext, DWORD dwFlags, HANDLE hAbortEvent) = 0; virtual HRESULT STDMETHODCALLTYPE AddFilterToCache( IBaseFilter* pFilter) = 0; virtual HRESULT STDMETHODCALLTYPE EnumCacheFilter( IEnumFilters** pEnum) = 0; virtual HRESULT STDMETHODCALLTYPE RemoveFilterFromCache( IBaseFilter* pFilter) = 0; virtual HRESULT STDMETHODCALLTYPE GetStartTime( REFERENCE_TIME* prtStart) = 0; virtual HRESULT STDMETHODCALLTYPE PushThroughData( IPin* pOutputPin, IPinConnection* pConnection, HANDLE hEventAbort) = 0; virtual HRESULT STDMETHODCALLTYPE SetFilterFlags( IBaseFilter* pFilter, DWORD dwFlags) = 0; virtual HRESULT STDMETHODCALLTYPE GetFilterFlags( IBaseFilter* pFilter, DWORD* pdwFlags) = 0; virtual HRESULT STDMETHODCALLTYPE RemoveFilterEx( IBaseFilter* pFilter, DWORD Flags) = 0; }; #else typedef struct IGraphConfigVtbl IGraphConfigVtbl; struct IGraphConfig { const IGraphConfigVtbl* lpVtbl; }; struct IGraphConfigVtbl { ICOM_MSVTABLE_COMPAT_FIELDS /*** IUnknown methods ***/ HRESULT (STDMETHODCALLTYPE *QueryInterface)( IGraphConfig* This, REFIID riid, void** ppvObject); ULONG (STDMETHODCALLTYPE *AddRef)( IGraphConfig* This); ULONG (STDMETHODCALLTYPE *Release)( IGraphConfig* This); /*** IGraphConfig methods ***/ HRESULT (STDMETHODCALLTYPE *Reconnect)( IGraphConfig* This, IPin* pOutputPin, IPin* pInputPin, const AM_MEDIA_TYPE* pmtFirstConnection, IBaseFilter* pUsingFilter, HANDLE hAbortEvent, DWORD dwFlags); HRESULT (STDMETHODCALLTYPE *Reconfigure)( IGraphConfig* This, IGraphConfigCallback* pCallback, PVOID pvContext, DWORD dwFlags, HANDLE hAbortEvent); HRESULT (STDMETHODCALLTYPE *AddFilterToCache)( IGraphConfig* This, IBaseFilter* pFilter); HRESULT (STDMETHODCALLTYPE *EnumCacheFilter)( IGraphConfig* This, IEnumFilters** pEnum); HRESULT (STDMETHODCALLTYPE *RemoveFilterFromCache)( IGraphConfig* This, IBaseFilter* pFilter); HRESULT (STDMETHODCALLTYPE *GetStartTime)( IGraphConfig* This, REFERENCE_TIME* prtStart); HRESULT (STDMETHODCALLTYPE *PushThroughData)( IGraphConfig* This, IPin* pOutputPin, IPinConnection* pConnection, HANDLE hEventAbort); HRESULT (STDMETHODCALLTYPE *SetFilterFlags)( IGraphConfig* This, IBaseFilter* pFilter, DWORD dwFlags); HRESULT (STDMETHODCALLTYPE *GetFilterFlags)( IGraphConfig* This, IBaseFilter* pFilter, DWORD* pdwFlags); HRESULT (STDMETHODCALLTYPE *RemoveFilterEx)( IGraphConfig* This, IBaseFilter* pFilter, DWORD Flags); }; /*** IUnknown methods ***/ #define IGraphConfig_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) #define IGraphConfig_AddRef(p) (p)->lpVtbl->AddRef(p) #define IGraphConfig_Release(p) (p)->lpVtbl->Release(p) /*** IGraphConfig methods ***/ #define IGraphConfig_Reconnect(p,a,b,c,d,e,f) (p)->lpVtbl->Reconnect(p,a,b,c,d,e,f) #define IGraphConfig_Reconfigure(p,a,b,c,d) (p)->lpVtbl->Reconfigure(p,a,b,c,d) #define IGraphConfig_AddFilterToCache(p,a) (p)->lpVtbl->AddFilterToCache(p,a) #define IGraphConfig_EnumCacheFilter(p,a) (p)->lpVtbl->EnumCacheFilter(p,a) #define IGraphConfig_RemoveFilterFromCache(p,a) (p)->lpVtbl->RemoveFilterFromCache(p,a) #define IGraphConfig_GetStartTime(p,a) (p)->lpVtbl->GetStartTime(p,a) #define IGraphConfig_PushThroughData(p,a,b,c) (p)->lpVtbl->PushThroughData(p,a,b,c) #define IGraphConfig_SetFilterFlags(p,a,b) (p)->lpVtbl->SetFilterFlags(p,a,b) #define IGraphConfig_GetFilterFlags(p,a,b) (p)->lpVtbl->GetFilterFlags(p,a,b) #define IGraphConfig_RemoveFilterEx(p,a,b) (p)->lpVtbl->RemoveFilterEx(p,a,b) #endif #define IGraphConfig_METHODS \ ICOM_MSVTABLE_COMPAT_FIELDS \ /*** IUnknown methods ***/ \ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \ STDMETHOD_(ULONG,AddRef)(THIS) PURE; \ STDMETHOD_(ULONG,Release)(THIS) PURE; \ /*** IGraphConfig methods ***/ \ STDMETHOD_(HRESULT,Reconnect)(THIS_ IPin* pOutputPin, IPin* pInputPin, const AM_MEDIA_TYPE* pmtFirstConnection, IBaseFilter* pUsingFilter, HANDLE hAbortEvent, DWORD dwFlags) PURE; \ STDMETHOD_(HRESULT,Reconfigure)(THIS_ IGraphConfigCallback* pCallback, PVOID pvContext, DWORD dwFlags, HANDLE hAbortEvent) PURE; \ STDMETHOD_(HRESULT,AddFilterToCache)(THIS_ IBaseFilter* pFilter) PURE; \ STDMETHOD_(HRESULT,EnumCacheFilter)(THIS_ IEnumFilters** pEnum) PURE; \ STDMETHOD_(HRESULT,RemoveFilterFromCache)(THIS_ IBaseFilter* pFilter) PURE; \ STDMETHOD_(HRESULT,GetStartTime)(THIS_ REFERENCE_TIME* prtStart) PURE; \ STDMETHOD_(HRESULT,PushThroughData)(THIS_ IPin* pOutputPin, IPinConnection* pConnection, HANDLE hEventAbort) PURE; \ STDMETHOD_(HRESULT,SetFilterFlags)(THIS_ IBaseFilter* pFilter, DWORD dwFlags) PURE; \ STDMETHOD_(HRESULT,GetFilterFlags)(THIS_ IBaseFilter* pFilter, DWORD* pdwFlags) PURE; \ STDMETHOD_(HRESULT,RemoveFilterEx)(THIS_ IBaseFilter* pFilter, DWORD Flags) PURE; HRESULT CALLBACK IGraphConfig_Reconnect_Proxy( IGraphConfig* This, IPin* pOutputPin, IPin* pInputPin, const AM_MEDIA_TYPE* pmtFirstConnection, IBaseFilter* pUsingFilter, HANDLE hAbortEvent, DWORD dwFlags); void __RPC_STUB IGraphConfig_Reconnect_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IGraphConfig_Reconfigure_Proxy( IGraphConfig* This, IGraphConfigCallback* pCallback, PVOID pvContext, DWORD dwFlags, HANDLE hAbortEvent); void __RPC_STUB IGraphConfig_Reconfigure_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IGraphConfig_AddFilterToCache_Proxy( IGraphConfig* This, IBaseFilter* pFilter); void __RPC_STUB IGraphConfig_AddFilterToCache_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IGraphConfig_EnumCacheFilter_Proxy( IGraphConfig* This, IEnumFilters** pEnum); void __RPC_STUB IGraphConfig_EnumCacheFilter_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IGraphConfig_RemoveFilterFromCache_Proxy( IGraphConfig* This, IBaseFilter* pFilter); void __RPC_STUB IGraphConfig_RemoveFilterFromCache_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IGraphConfig_GetStartTime_Proxy( IGraphConfig* This, REFERENCE_TIME* prtStart); void __RPC_STUB IGraphConfig_GetStartTime_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IGraphConfig_PushThroughData_Proxy( IGraphConfig* This, IPin* pOutputPin, IPinConnection* pConnection, HANDLE hEventAbort); void __RPC_STUB IGraphConfig_PushThroughData_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IGraphConfig_SetFilterFlags_Proxy( IGraphConfig* This, IBaseFilter* pFilter, DWORD dwFlags); void __RPC_STUB IGraphConfig_SetFilterFlags_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IGraphConfig_GetFilterFlags_Proxy( IGraphConfig* This, IBaseFilter* pFilter, DWORD* pdwFlags); void __RPC_STUB IGraphConfig_GetFilterFlags_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IGraphConfig_RemoveFilterEx_Proxy( IGraphConfig* This, IBaseFilter* pFilter, DWORD Flags); void __RPC_STUB IGraphConfig_RemoveFilterEx_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); #endif /* __IGraphConfig_INTERFACE_DEFINED__ */ /***************************************************************************** * IGraphConfigCallback interface */ #ifndef __IGraphConfigCallback_INTERFACE_DEFINED__ #define __IGraphConfigCallback_INTERFACE_DEFINED__ DEFINE_GUID(IID_IGraphConfigCallback, 0xade0fd60, 0xd19d, 0x11d2, 0xab,0xf6, 0x00,0xa0,0xc9,0x05,0xf3,0x75); #if defined(__cplusplus) && !defined(CINTERFACE) struct IGraphConfigCallback : public IUnknown { virtual HRESULT STDMETHODCALLTYPE Reconfigure( PVOID pvContext, DWORD dwFlags) = 0; }; #else typedef struct IGraphConfigCallbackVtbl IGraphConfigCallbackVtbl; struct IGraphConfigCallback { const IGraphConfigCallbackVtbl* lpVtbl; }; struct IGraphConfigCallbackVtbl { ICOM_MSVTABLE_COMPAT_FIELDS /*** IUnknown methods ***/ HRESULT (STDMETHODCALLTYPE *QueryInterface)( IGraphConfigCallback* This, REFIID riid, void** ppvObject); ULONG (STDMETHODCALLTYPE *AddRef)( IGraphConfigCallback* This); ULONG (STDMETHODCALLTYPE *Release)( IGraphConfigCallback* This); /*** IGraphConfigCallback methods ***/ HRESULT (STDMETHODCALLTYPE *Reconfigure)( IGraphConfigCallback* This, PVOID pvContext, DWORD dwFlags); }; /*** IUnknown methods ***/ #define IGraphConfigCallback_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) #define IGraphConfigCallback_AddRef(p) (p)->lpVtbl->AddRef(p) #define IGraphConfigCallback_Release(p) (p)->lpVtbl->Release(p) /*** IGraphConfigCallback methods ***/ #define IGraphConfigCallback_Reconfigure(p,a,b) (p)->lpVtbl->Reconfigure(p,a,b) #endif #define IGraphConfigCallback_METHODS \ ICOM_MSVTABLE_COMPAT_FIELDS \ /*** IUnknown methods ***/ \ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \ STDMETHOD_(ULONG,AddRef)(THIS) PURE; \ STDMETHOD_(ULONG,Release)(THIS) PURE; \ /*** IGraphConfigCallback methods ***/ \ STDMETHOD_(HRESULT,Reconfigure)(THIS_ PVOID pvContext, DWORD dwFlags) PURE; HRESULT CALLBACK IGraphConfigCallback_Reconfigure_Proxy( IGraphConfigCallback* This, PVOID pvContext, DWORD dwFlags); void __RPC_STUB IGraphConfigCallback_Reconfigure_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); #endif /* __IGraphConfigCallback_INTERFACE_DEFINED__ */ #ifndef __IFilterChain_FWD_DEFINED__ #define __IFilterChain_FWD_DEFINED__ typedef struct IFilterChain IFilterChain; #endif /***************************************************************************** * IFilterChain interface */ #ifndef __IFilterChain_INTERFACE_DEFINED__ #define __IFilterChain_INTERFACE_DEFINED__ DEFINE_GUID(IID_IFilterChain, 0xdcfbdcf6, 0x0dc2, 0x45f5, 0x9a,0xb2, 0x7c,0x33,0x0e,0xa0,0x9c,0x29); #if defined(__cplusplus) && !defined(CINTERFACE) struct IFilterChain : public IUnknown { virtual HRESULT STDMETHODCALLTYPE StartChain( IBaseFilter* pStartFilter, IBaseFilter* pEndFilter) = 0; virtual HRESULT STDMETHODCALLTYPE PauseChain( IBaseFilter* pStartFilter, IBaseFilter* pEndFilter) = 0; virtual HRESULT STDMETHODCALLTYPE StopChain( IBaseFilter* pStartFilter, IBaseFilter* pEndFilter) = 0; virtual HRESULT STDMETHODCALLTYPE RemoveChain( IBaseFilter* pStartFilter, IBaseFilter* pEndFilter) = 0; }; #else typedef struct IFilterChainVtbl IFilterChainVtbl; struct IFilterChain { const IFilterChainVtbl* lpVtbl; }; struct IFilterChainVtbl { ICOM_MSVTABLE_COMPAT_FIELDS /*** IUnknown methods ***/ HRESULT (STDMETHODCALLTYPE *QueryInterface)( IFilterChain* This, REFIID riid, void** ppvObject); ULONG (STDMETHODCALLTYPE *AddRef)( IFilterChain* This); ULONG (STDMETHODCALLTYPE *Release)( IFilterChain* This); /*** IFilterChain methods ***/ HRESULT (STDMETHODCALLTYPE *StartChain)( IFilterChain* This, IBaseFilter* pStartFilter, IBaseFilter* pEndFilter); HRESULT (STDMETHODCALLTYPE *PauseChain)( IFilterChain* This, IBaseFilter* pStartFilter, IBaseFilter* pEndFilter); HRESULT (STDMETHODCALLTYPE *StopChain)( IFilterChain* This, IBaseFilter* pStartFilter, IBaseFilter* pEndFilter); HRESULT (STDMETHODCALLTYPE *RemoveChain)( IFilterChain* This, IBaseFilter* pStartFilter, IBaseFilter* pEndFilter); }; /*** IUnknown methods ***/ #define IFilterChain_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) #define IFilterChain_AddRef(p) (p)->lpVtbl->AddRef(p) #define IFilterChain_Release(p) (p)->lpVtbl->Release(p) /*** IFilterChain methods ***/ #define IFilterChain_StartChain(p,a,b) (p)->lpVtbl->StartChain(p,a,b) #define IFilterChain_PauseChain(p,a,b) (p)->lpVtbl->PauseChain(p,a,b) #define IFilterChain_StopChain(p,a,b) (p)->lpVtbl->StopChain(p,a,b) #define IFilterChain_RemoveChain(p,a,b) (p)->lpVtbl->RemoveChain(p,a,b) #endif #define IFilterChain_METHODS \ ICOM_MSVTABLE_COMPAT_FIELDS \ /*** IUnknown methods ***/ \ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \ STDMETHOD_(ULONG,AddRef)(THIS) PURE; \ STDMETHOD_(ULONG,Release)(THIS) PURE; \ /*** IFilterChain methods ***/ \ STDMETHOD_(HRESULT,StartChain)(THIS_ IBaseFilter* pStartFilter, IBaseFilter* pEndFilter) PURE; \ STDMETHOD_(HRESULT,PauseChain)(THIS_ IBaseFilter* pStartFilter, IBaseFilter* pEndFilter) PURE; \ STDMETHOD_(HRESULT,StopChain)(THIS_ IBaseFilter* pStartFilter, IBaseFilter* pEndFilter) PURE; \ STDMETHOD_(HRESULT,RemoveChain)(THIS_ IBaseFilter* pStartFilter, IBaseFilter* pEndFilter) PURE; HRESULT CALLBACK IFilterChain_StartChain_Proxy( IFilterChain* This, IBaseFilter* pStartFilter, IBaseFilter* pEndFilter); void __RPC_STUB IFilterChain_StartChain_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IFilterChain_PauseChain_Proxy( IFilterChain* This, IBaseFilter* pStartFilter, IBaseFilter* pEndFilter); void __RPC_STUB IFilterChain_PauseChain_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IFilterChain_StopChain_Proxy( IFilterChain* This, IBaseFilter* pStartFilter, IBaseFilter* pEndFilter); void __RPC_STUB IFilterChain_StopChain_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT CALLBACK IFilterChain_RemoveChain_Proxy( IFilterChain* This, IBaseFilter* pStartFilter, IBaseFilter* pEndFilter); void __RPC_STUB IFilterChain_RemoveChain_Stub( struct IRpcStubBuffer* This, struct IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); #endif /* __IFilterChain_INTERFACE_DEFINED__ */ #ifdef __cplusplus } #endif #endif /* __WIDL_STRMIF_H */