/*** Autogenerated by WIDL 10.17 from /var/tmp/portage/app-emulation/wine-vanilla-10.17/work/wine-10.17/include/strmif.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ #define __REQUIRED_RPCNDR_H_VERSION__ 475 #endif #include #include #endif #ifndef COM_NO_WINDOWS_H #include #include #endif #ifndef __strmif_h__ #define __strmif_h__ /* Forward declarations */ #ifndef __ICreateDevEnum_FWD_DEFINED__ #define __ICreateDevEnum_FWD_DEFINED__ typedef interface ICreateDevEnum ICreateDevEnum; #ifdef __cplusplus interface ICreateDevEnum; #endif /* __cplusplus */ #endif #ifndef __IPin_FWD_DEFINED__ #define __IPin_FWD_DEFINED__ typedef interface IPin IPin; #ifdef __cplusplus interface IPin; #endif /* __cplusplus */ #endif #ifndef __IEnumPins_FWD_DEFINED__ #define __IEnumPins_FWD_DEFINED__ typedef interface IEnumPins IEnumPins; #ifdef __cplusplus interface IEnumPins; #endif /* __cplusplus */ #endif #ifndef __IEnumMediaTypes_FWD_DEFINED__ #define __IEnumMediaTypes_FWD_DEFINED__ typedef interface IEnumMediaTypes IEnumMediaTypes; #ifdef __cplusplus interface IEnumMediaTypes; #endif /* __cplusplus */ #endif #ifndef __IFilterGraph_FWD_DEFINED__ #define __IFilterGraph_FWD_DEFINED__ typedef interface IFilterGraph IFilterGraph; #ifdef __cplusplus interface IFilterGraph; #endif /* __cplusplus */ #endif #ifndef __IEnumFilters_FWD_DEFINED__ #define __IEnumFilters_FWD_DEFINED__ typedef interface IEnumFilters IEnumFilters; #ifdef __cplusplus interface IEnumFilters; #endif /* __cplusplus */ #endif #ifndef __IMediaFilter_FWD_DEFINED__ #define __IMediaFilter_FWD_DEFINED__ typedef interface IMediaFilter IMediaFilter; #ifdef __cplusplus interface IMediaFilter; #endif /* __cplusplus */ #endif #ifndef __IBaseFilter_FWD_DEFINED__ #define __IBaseFilter_FWD_DEFINED__ typedef interface IBaseFilter IBaseFilter; #ifdef __cplusplus interface IBaseFilter; #endif /* __cplusplus */ #endif #ifndef __IReferenceClock_FWD_DEFINED__ #define __IReferenceClock_FWD_DEFINED__ typedef interface IReferenceClock IReferenceClock; #ifdef __cplusplus interface IReferenceClock; #endif /* __cplusplus */ #endif #ifndef __IMediaSample_FWD_DEFINED__ #define __IMediaSample_FWD_DEFINED__ typedef interface IMediaSample IMediaSample; #ifdef __cplusplus interface IMediaSample; #endif /* __cplusplus */ #endif #ifndef __IMediaSample2_FWD_DEFINED__ #define __IMediaSample2_FWD_DEFINED__ typedef interface IMediaSample2 IMediaSample2; #ifdef __cplusplus interface IMediaSample2; #endif /* __cplusplus */ #endif #ifndef __IMemAllocator_FWD_DEFINED__ #define __IMemAllocator_FWD_DEFINED__ typedef interface IMemAllocator IMemAllocator; #ifdef __cplusplus interface IMemAllocator; #endif /* __cplusplus */ #endif #ifndef __IMemAllocatorCallbackTemp_FWD_DEFINED__ #define __IMemAllocatorCallbackTemp_FWD_DEFINED__ typedef interface IMemAllocatorCallbackTemp IMemAllocatorCallbackTemp; #ifdef __cplusplus interface IMemAllocatorCallbackTemp; #endif /* __cplusplus */ #endif #ifndef __IMemAllocatorNotifyCallbackTemp_FWD_DEFINED__ #define __IMemAllocatorNotifyCallbackTemp_FWD_DEFINED__ typedef interface IMemAllocatorNotifyCallbackTemp IMemAllocatorNotifyCallbackTemp; #ifdef __cplusplus interface IMemAllocatorNotifyCallbackTemp; #endif /* __cplusplus */ #endif #ifndef __IMemInputPin_FWD_DEFINED__ #define __IMemInputPin_FWD_DEFINED__ typedef interface IMemInputPin IMemInputPin; #ifdef __cplusplus interface IMemInputPin; #endif /* __cplusplus */ #endif #ifndef __IAMovieSetup_FWD_DEFINED__ #define __IAMovieSetup_FWD_DEFINED__ typedef interface IAMovieSetup IAMovieSetup; #ifdef __cplusplus interface IAMovieSetup; #endif /* __cplusplus */ #endif #ifndef __IMediaSeeking_FWD_DEFINED__ #define __IMediaSeeking_FWD_DEFINED__ typedef interface IMediaSeeking IMediaSeeking; #ifdef __cplusplus interface IMediaSeeking; #endif /* __cplusplus */ #endif #ifndef __IAMStreamSelect_FWD_DEFINED__ #define __IAMStreamSelect_FWD_DEFINED__ typedef interface IAMStreamSelect IAMStreamSelect; #ifdef __cplusplus interface IAMStreamSelect; #endif /* __cplusplus */ #endif #ifndef __IEnumRegFilters_FWD_DEFINED__ #define __IEnumRegFilters_FWD_DEFINED__ typedef interface IEnumRegFilters IEnumRegFilters; #ifdef __cplusplus interface IEnumRegFilters; #endif /* __cplusplus */ #endif #ifndef __IFilterMapper_FWD_DEFINED__ #define __IFilterMapper_FWD_DEFINED__ typedef interface IFilterMapper IFilterMapper; #ifdef __cplusplus interface IFilterMapper; #endif /* __cplusplus */ #endif #ifndef __IFilterMapper2_FWD_DEFINED__ #define __IFilterMapper2_FWD_DEFINED__ typedef interface IFilterMapper2 IFilterMapper2; #ifdef __cplusplus interface IFilterMapper2; #endif /* __cplusplus */ #endif #ifndef __IFilterMapper3_FWD_DEFINED__ #define __IFilterMapper3_FWD_DEFINED__ typedef interface IFilterMapper3 IFilterMapper3; #ifdef __cplusplus interface IFilterMapper3; #endif /* __cplusplus */ #endif #ifndef __IQualityControl_FWD_DEFINED__ #define __IQualityControl_FWD_DEFINED__ typedef interface IQualityControl IQualityControl; #ifdef __cplusplus interface IQualityControl; #endif /* __cplusplus */ #endif #ifndef __IOverlayNotify_FWD_DEFINED__ #define __IOverlayNotify_FWD_DEFINED__ typedef interface IOverlayNotify IOverlayNotify; #ifdef __cplusplus interface IOverlayNotify; #endif /* __cplusplus */ #endif #ifndef __IOverlayNotify2_FWD_DEFINED__ #define __IOverlayNotify2_FWD_DEFINED__ typedef interface IOverlayNotify2 IOverlayNotify2; #ifdef __cplusplus interface IOverlayNotify2; #endif /* __cplusplus */ #endif #ifndef __IOverlay_FWD_DEFINED__ #define __IOverlay_FWD_DEFINED__ typedef interface IOverlay IOverlay; #ifdef __cplusplus interface IOverlay; #endif /* __cplusplus */ #endif #ifndef __IMediaEventSink_FWD_DEFINED__ #define __IMediaEventSink_FWD_DEFINED__ typedef interface IMediaEventSink IMediaEventSink; #ifdef __cplusplus interface IMediaEventSink; #endif /* __cplusplus */ #endif #ifndef __IFileSourceFilter_FWD_DEFINED__ #define __IFileSourceFilter_FWD_DEFINED__ typedef interface IFileSourceFilter IFileSourceFilter; #ifdef __cplusplus interface IFileSourceFilter; #endif /* __cplusplus */ #endif #ifndef __IFileSinkFilter_FWD_DEFINED__ #define __IFileSinkFilter_FWD_DEFINED__ typedef interface IFileSinkFilter IFileSinkFilter; #ifdef __cplusplus interface IFileSinkFilter; #endif /* __cplusplus */ #endif #ifndef __IFileSinkFilter2_FWD_DEFINED__ #define __IFileSinkFilter2_FWD_DEFINED__ typedef interface IFileSinkFilter2 IFileSinkFilter2; #ifdef __cplusplus interface IFileSinkFilter2; #endif /* __cplusplus */ #endif #ifndef __IGraphBuilder_FWD_DEFINED__ #define __IGraphBuilder_FWD_DEFINED__ typedef interface IGraphBuilder IGraphBuilder; #ifdef __cplusplus interface IGraphBuilder; #endif /* __cplusplus */ #endif #ifndef __ICaptureGraphBuilder_FWD_DEFINED__ #define __ICaptureGraphBuilder_FWD_DEFINED__ typedef interface ICaptureGraphBuilder ICaptureGraphBuilder; #ifdef __cplusplus interface ICaptureGraphBuilder; #endif /* __cplusplus */ #endif #ifndef __IAMCopyCaptureFileProgress_FWD_DEFINED__ #define __IAMCopyCaptureFileProgress_FWD_DEFINED__ typedef interface IAMCopyCaptureFileProgress IAMCopyCaptureFileProgress; #ifdef __cplusplus interface IAMCopyCaptureFileProgress; #endif /* __cplusplus */ #endif #ifndef __ICaptureGraphBuilder2_FWD_DEFINED__ #define __ICaptureGraphBuilder2_FWD_DEFINED__ typedef interface ICaptureGraphBuilder2 ICaptureGraphBuilder2; #ifdef __cplusplus interface ICaptureGraphBuilder2; #endif /* __cplusplus */ #endif #ifndef __IConfigAviMux_FWD_DEFINED__ #define __IConfigAviMux_FWD_DEFINED__ typedef interface IConfigAviMux IConfigAviMux; #ifdef __cplusplus interface IConfigAviMux; #endif /* __cplusplus */ #endif #ifndef __IConfigInterleaving_FWD_DEFINED__ #define __IConfigInterleaving_FWD_DEFINED__ typedef interface IConfigInterleaving IConfigInterleaving; #ifdef __cplusplus interface IConfigInterleaving; #endif /* __cplusplus */ #endif #ifndef __IAMClockSlave_FWD_DEFINED__ #define __IAMClockSlave_FWD_DEFINED__ typedef interface IAMClockSlave IAMClockSlave; #ifdef __cplusplus interface IAMClockSlave; #endif /* __cplusplus */ #endif #ifndef __IAMCertifiedOutputProtection_FWD_DEFINED__ #define __IAMCertifiedOutputProtection_FWD_DEFINED__ typedef interface IAMCertifiedOutputProtection IAMCertifiedOutputProtection; #ifdef __cplusplus interface IAMCertifiedOutputProtection; #endif /* __cplusplus */ #endif #ifndef __IFilterGraph2_FWD_DEFINED__ #define __IFilterGraph2_FWD_DEFINED__ typedef interface IFilterGraph2 IFilterGraph2; #ifdef __cplusplus interface IFilterGraph2; #endif /* __cplusplus */ #endif #ifndef __IStreamBuilder_FWD_DEFINED__ #define __IStreamBuilder_FWD_DEFINED__ typedef interface IStreamBuilder IStreamBuilder; #ifdef __cplusplus interface IStreamBuilder; #endif /* __cplusplus */ #endif #ifndef __IAMStreamConfig_FWD_DEFINED__ #define __IAMStreamConfig_FWD_DEFINED__ typedef interface IAMStreamConfig IAMStreamConfig; #ifdef __cplusplus interface IAMStreamConfig; #endif /* __cplusplus */ #endif #ifndef __IAMVideoProcAmp_FWD_DEFINED__ #define __IAMVideoProcAmp_FWD_DEFINED__ typedef interface IAMVideoProcAmp IAMVideoProcAmp; #ifdef __cplusplus interface IAMVideoProcAmp; #endif /* __cplusplus */ #endif #ifndef __IAsyncReader_FWD_DEFINED__ #define __IAsyncReader_FWD_DEFINED__ typedef interface IAsyncReader IAsyncReader; #ifdef __cplusplus interface IAsyncReader; #endif /* __cplusplus */ #endif #ifndef __IGraphVersion_FWD_DEFINED__ #define __IGraphVersion_FWD_DEFINED__ typedef interface IGraphVersion IGraphVersion; #ifdef __cplusplus interface IGraphVersion; #endif /* __cplusplus */ #endif #ifndef __IResourceConsumer_FWD_DEFINED__ #define __IResourceConsumer_FWD_DEFINED__ typedef interface IResourceConsumer IResourceConsumer; #ifdef __cplusplus interface IResourceConsumer; #endif /* __cplusplus */ #endif #ifndef __IResourceManager_FWD_DEFINED__ #define __IResourceManager_FWD_DEFINED__ typedef interface IResourceManager IResourceManager; #ifdef __cplusplus interface IResourceManager; #endif /* __cplusplus */ #endif #ifndef __IAMStreamControl_FWD_DEFINED__ #define __IAMStreamControl_FWD_DEFINED__ typedef interface IAMStreamControl IAMStreamControl; #ifdef __cplusplus interface IAMStreamControl; #endif /* __cplusplus */ #endif #ifndef __IKsPropertySet_FWD_DEFINED__ #define __IKsPropertySet_FWD_DEFINED__ typedef interface IKsPropertySet IKsPropertySet; #ifdef __cplusplus interface IKsPropertySet; #endif /* __cplusplus */ #endif #ifndef __IMediaPropertyBag_FWD_DEFINED__ #define __IMediaPropertyBag_FWD_DEFINED__ typedef interface IMediaPropertyBag IMediaPropertyBag; #ifdef __cplusplus interface IMediaPropertyBag; #endif /* __cplusplus */ #endif #ifndef __IPersistMediaPropertyBag_FWD_DEFINED__ #define __IPersistMediaPropertyBag_FWD_DEFINED__ typedef interface IPersistMediaPropertyBag IPersistMediaPropertyBag; #ifdef __cplusplus interface IPersistMediaPropertyBag; #endif /* __cplusplus */ #endif #ifndef __ISeekingPassThru_FWD_DEFINED__ #define __ISeekingPassThru_FWD_DEFINED__ typedef interface ISeekingPassThru ISeekingPassThru; #ifdef __cplusplus interface ISeekingPassThru; #endif /* __cplusplus */ #endif #ifndef __IAMFilterMiscFlags_FWD_DEFINED__ #define __IAMFilterMiscFlags_FWD_DEFINED__ typedef interface IAMFilterMiscFlags IAMFilterMiscFlags; #ifdef __cplusplus interface IAMFilterMiscFlags; #endif /* __cplusplus */ #endif #ifndef __IAMGraphBuilderCallback_FWD_DEFINED__ #define __IAMGraphBuilderCallback_FWD_DEFINED__ typedef interface IAMGraphBuilderCallback IAMGraphBuilderCallback; #ifdef __cplusplus interface IAMGraphBuilderCallback; #endif /* __cplusplus */ #endif #ifndef __IAMVfwCaptureDialogs_FWD_DEFINED__ #define __IAMVfwCaptureDialogs_FWD_DEFINED__ typedef interface IAMVfwCaptureDialogs IAMVfwCaptureDialogs; #ifdef __cplusplus interface IAMVfwCaptureDialogs; #endif /* __cplusplus */ #endif #ifndef __IAMCameraControl_FWD_DEFINED__ #define __IAMCameraControl_FWD_DEFINED__ typedef interface IAMCameraControl IAMCameraControl; #ifdef __cplusplus interface IAMCameraControl; #endif /* __cplusplus */ #endif #ifndef __IAMVideoControl_FWD_DEFINED__ #define __IAMVideoControl_FWD_DEFINED__ typedef interface IAMVideoControl IAMVideoControl; #ifdef __cplusplus interface IAMVideoControl; #endif /* __cplusplus */ #endif #ifndef __IAMBufferNegotiation_FWD_DEFINED__ #define __IAMBufferNegotiation_FWD_DEFINED__ typedef interface IAMBufferNegotiation IAMBufferNegotiation; #ifdef __cplusplus interface IAMBufferNegotiation; #endif /* __cplusplus */ #endif #ifndef __IAMDroppedFrames_FWD_DEFINED__ #define __IAMDroppedFrames_FWD_DEFINED__ typedef interface IAMDroppedFrames IAMDroppedFrames; #ifdef __cplusplus interface IAMDroppedFrames; #endif /* __cplusplus */ #endif #ifndef __IAMLatency_FWD_DEFINED__ #define __IAMLatency_FWD_DEFINED__ typedef interface IAMLatency IAMLatency; #ifdef __cplusplus interface IAMLatency; #endif /* __cplusplus */ #endif #ifndef __IAMPushSource_FWD_DEFINED__ #define __IAMPushSource_FWD_DEFINED__ typedef interface IAMPushSource IAMPushSource; #ifdef __cplusplus interface IAMPushSource; #endif /* __cplusplus */ #endif #ifndef __IAMVideoCompression_FWD_DEFINED__ #define __IAMVideoCompression_FWD_DEFINED__ typedef interface IAMVideoCompression IAMVideoCompression; #ifdef __cplusplus interface IAMVideoCompression; #endif /* __cplusplus */ #endif #ifndef __IAMCrossbar_FWD_DEFINED__ #define __IAMCrossbar_FWD_DEFINED__ typedef interface IAMCrossbar IAMCrossbar; #ifdef __cplusplus interface IAMCrossbar; #endif /* __cplusplus */ #endif #ifndef __IAMTunerNotification_FWD_DEFINED__ #define __IAMTunerNotification_FWD_DEFINED__ typedef interface IAMTunerNotification IAMTunerNotification; #ifdef __cplusplus interface IAMTunerNotification; #endif /* __cplusplus */ #endif #ifndef __IAMTuner_FWD_DEFINED__ #define __IAMTuner_FWD_DEFINED__ typedef interface IAMTuner IAMTuner; #ifdef __cplusplus interface IAMTuner; #endif /* __cplusplus */ #endif #ifndef __IAMTVTuner_FWD_DEFINED__ #define __IAMTVTuner_FWD_DEFINED__ typedef interface IAMTVTuner IAMTVTuner; #ifdef __cplusplus interface IAMTVTuner; #endif /* __cplusplus */ #endif #ifndef __IVideoFrameStep_FWD_DEFINED__ #define __IVideoFrameStep_FWD_DEFINED__ typedef interface IVideoFrameStep IVideoFrameStep; #ifdef __cplusplus interface IVideoFrameStep; #endif /* __cplusplus */ #endif #ifndef __IPinConnection_FWD_DEFINED__ #define __IPinConnection_FWD_DEFINED__ typedef interface IPinConnection IPinConnection; #ifdef __cplusplus interface IPinConnection; #endif /* __cplusplus */ #endif #ifndef __IPinFlowControl_FWD_DEFINED__ #define __IPinFlowControl_FWD_DEFINED__ typedef interface IPinFlowControl IPinFlowControl; #ifdef __cplusplus interface IPinFlowControl; #endif /* __cplusplus */ #endif #ifndef __IGraphConfig_FWD_DEFINED__ #define __IGraphConfig_FWD_DEFINED__ typedef interface IGraphConfig IGraphConfig; #ifdef __cplusplus interface IGraphConfig; #endif /* __cplusplus */ #endif #ifndef __IGraphConfigCallback_FWD_DEFINED__ #define __IGraphConfigCallback_FWD_DEFINED__ typedef interface IGraphConfigCallback IGraphConfigCallback; #ifdef __cplusplus interface IGraphConfigCallback; #endif /* __cplusplus */ #endif #ifndef __IFilterChain_FWD_DEFINED__ #define __IFilterChain_FWD_DEFINED__ typedef interface IFilterChain IFilterChain; #ifdef __cplusplus interface IFilterChain; #endif /* __cplusplus */ #endif #ifndef __IVMRImagePresenter_FWD_DEFINED__ #define __IVMRImagePresenter_FWD_DEFINED__ typedef interface IVMRImagePresenter IVMRImagePresenter; #ifdef __cplusplus interface IVMRImagePresenter; #endif /* __cplusplus */ #endif #ifndef __IVMRSurfaceAllocator_FWD_DEFINED__ #define __IVMRSurfaceAllocator_FWD_DEFINED__ typedef interface IVMRSurfaceAllocator IVMRSurfaceAllocator; #ifdef __cplusplus interface IVMRSurfaceAllocator; #endif /* __cplusplus */ #endif #ifndef __IVMRSurfaceAllocatorNotify_FWD_DEFINED__ #define __IVMRSurfaceAllocatorNotify_FWD_DEFINED__ typedef interface IVMRSurfaceAllocatorNotify IVMRSurfaceAllocatorNotify; #ifdef __cplusplus interface IVMRSurfaceAllocatorNotify; #endif /* __cplusplus */ #endif #ifndef __IVMRWindowlessControl_FWD_DEFINED__ #define __IVMRWindowlessControl_FWD_DEFINED__ typedef interface IVMRWindowlessControl IVMRWindowlessControl; #ifdef __cplusplus interface IVMRWindowlessControl; #endif /* __cplusplus */ #endif #ifndef __IVMRMixerControl_FWD_DEFINED__ #define __IVMRMixerControl_FWD_DEFINED__ typedef interface IVMRMixerControl IVMRMixerControl; #ifdef __cplusplus interface IVMRMixerControl; #endif /* __cplusplus */ #endif #ifndef __IVMRMonitorConfig_FWD_DEFINED__ #define __IVMRMonitorConfig_FWD_DEFINED__ typedef interface IVMRMonitorConfig IVMRMonitorConfig; #ifdef __cplusplus interface IVMRMonitorConfig; #endif /* __cplusplus */ #endif #ifndef __IVMRFilterConfig_FWD_DEFINED__ #define __IVMRFilterConfig_FWD_DEFINED__ typedef interface IVMRFilterConfig IVMRFilterConfig; #ifdef __cplusplus interface IVMRFilterConfig; #endif /* __cplusplus */ #endif #ifndef __IVMRAspectRatioControl_FWD_DEFINED__ #define __IVMRAspectRatioControl_FWD_DEFINED__ typedef interface IVMRAspectRatioControl IVMRAspectRatioControl; #ifdef __cplusplus interface IVMRAspectRatioControl; #endif /* __cplusplus */ #endif #ifndef __IVMRDeinterlaceControl_FWD_DEFINED__ #define __IVMRDeinterlaceControl_FWD_DEFINED__ typedef interface IVMRDeinterlaceControl IVMRDeinterlaceControl; #ifdef __cplusplus interface IVMRDeinterlaceControl; #endif /* __cplusplus */ #endif #ifndef __IVMRMixerBitmap_FWD_DEFINED__ #define __IVMRMixerBitmap_FWD_DEFINED__ typedef interface IVMRMixerBitmap IVMRMixerBitmap; #ifdef __cplusplus interface IVMRMixerBitmap; #endif /* __cplusplus */ #endif #ifndef __IVMRImageCompositor_FWD_DEFINED__ #define __IVMRImageCompositor_FWD_DEFINED__ typedef interface IVMRImageCompositor IVMRImageCompositor; #ifdef __cplusplus interface IVMRImageCompositor; #endif /* __cplusplus */ #endif #ifndef __IVMRVideoStreamControl_FWD_DEFINED__ #define __IVMRVideoStreamControl_FWD_DEFINED__ typedef interface IVMRVideoStreamControl IVMRVideoStreamControl; #ifdef __cplusplus interface IVMRVideoStreamControl; #endif /* __cplusplus */ #endif #ifndef __IVMRImagePresenterConfig_FWD_DEFINED__ #define __IVMRImagePresenterConfig_FWD_DEFINED__ typedef interface IVMRImagePresenterConfig IVMRImagePresenterConfig; #ifdef __cplusplus interface IVMRImagePresenterConfig; #endif /* __cplusplus */ #endif #ifndef __IVMRImagePresenterExclModeConfig_FWD_DEFINED__ #define __IVMRImagePresenterExclModeConfig_FWD_DEFINED__ typedef interface IVMRImagePresenterExclModeConfig IVMRImagePresenterExclModeConfig; #ifdef __cplusplus interface IVMRImagePresenterExclModeConfig; #endif /* __cplusplus */ #endif #ifndef __IVPManager_FWD_DEFINED__ #define __IVPManager_FWD_DEFINED__ typedef interface IVPManager IVPManager; #ifdef __cplusplus interface IVPManager; #endif /* __cplusplus */ #endif #ifndef __IDvdControl_FWD_DEFINED__ #define __IDvdControl_FWD_DEFINED__ typedef interface IDvdControl IDvdControl; #ifdef __cplusplus interface IDvdControl; #endif /* __cplusplus */ #endif #ifndef __IDvdInfo_FWD_DEFINED__ #define __IDvdInfo_FWD_DEFINED__ typedef interface IDvdInfo IDvdInfo; #ifdef __cplusplus interface IDvdInfo; #endif /* __cplusplus */ #endif #ifndef __IDvdCmd_FWD_DEFINED__ #define __IDvdCmd_FWD_DEFINED__ typedef interface IDvdCmd IDvdCmd; #ifdef __cplusplus interface IDvdCmd; #endif /* __cplusplus */ #endif #ifndef __IDvdState_FWD_DEFINED__ #define __IDvdState_FWD_DEFINED__ typedef interface IDvdState IDvdState; #ifdef __cplusplus interface IDvdState; #endif /* __cplusplus */ #endif #ifndef __IDvdControl2_FWD_DEFINED__ #define __IDvdControl2_FWD_DEFINED__ typedef interface IDvdControl2 IDvdControl2; #ifdef __cplusplus interface IDvdControl2; #endif /* __cplusplus */ #endif #ifndef __IDvdInfo2_FWD_DEFINED__ #define __IDvdInfo2_FWD_DEFINED__ typedef interface IDvdInfo2 IDvdInfo2; #ifdef __cplusplus interface IDvdInfo2; #endif /* __cplusplus */ #endif #ifndef __IDvdGraphBuilder_FWD_DEFINED__ #define __IDvdGraphBuilder_FWD_DEFINED__ typedef interface IDvdGraphBuilder IDvdGraphBuilder; #ifdef __cplusplus interface IDvdGraphBuilder; #endif /* __cplusplus */ #endif /* Headers for imported files */ #include #include #include #include #include #ifdef __cplusplus extern "C" { #endif #define CDEF_CLASS_DEFAULT 0x0001 #define CDEF_BYPASS_CLASS_MANAGER 0x0002 #define CDEF_CLASS_LEGACY 0x0004 #define CDEF_MERIT_ABOVE_DO_NOT_USE 0x0008 #define CDEF_DEVMON_CMGR_DEVICE 0x0010 #define CDEF_DEVMON_DMO 0x0020 #define CDEF_DEVMON_PNP_DEVICE 0x0040 #define CDEF_DEVMON_FILTER 0x0080 #define CDEF_DEVMON_SELECTIVE_MASK 0x00f0 /***************************************************************************** * 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) MIDL_INTERFACE("29840822-5b84-11d0-bd3b-00a0c911ce86") ICreateDevEnum : public IUnknown { virtual HRESULT STDMETHODCALLTYPE CreateClassEnumerator( REFCLSID clsidDeviceClass, IEnumMoniker **ppEnumMoniker, DWORD dwFlags) = 0; }; #ifdef __CRT_UUID_DECL __CRT_UUID_DECL(ICreateDevEnum, 0x29840822, 0x5b84, 0x11d0, 0xbd,0x3b, 0x00,0xa0,0xc9,0x11,0xce,0x86) #endif #else typedef struct ICreateDevEnumVtbl { BEGIN_INTERFACE /*** 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); END_INTERFACE } ICreateDevEnumVtbl; interface ICreateDevEnum { CONST_VTBL ICreateDevEnumVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ #define ICreateDevEnum_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define ICreateDevEnum_AddRef(This) (This)->lpVtbl->AddRef(This) #define ICreateDevEnum_Release(This) (This)->lpVtbl->Release(This) /*** ICreateDevEnum methods ***/ #define ICreateDevEnum_CreateClassEnumerator(This,clsidDeviceClass,ppEnumMoniker,dwFlags) (This)->lpVtbl->CreateClassEnumerator(This,clsidDeviceClass,ppEnumMoniker,dwFlags) #else /*** IUnknown methods ***/ static inline HRESULT ICreateDevEnum_QueryInterface(ICreateDevEnum* This,REFIID riid,void **ppvObject) { return This->lpVtbl->QueryInterface(This,riid,ppvObject); } static inline ULONG ICreateDevEnum_AddRef(ICreateDevEnum* This) { return This->lpVtbl->AddRef(This); } static inline ULONG ICreateDevEnum_Release(ICreateDevEnum* This) { return This->lpVtbl->Release(This); } /*** ICreateDevEnum methods ***/ static inline HRESULT ICreateDevEnum_CreateClassEnumerator(ICreateDevEnum* This,REFCLSID clsidDeviceClass,IEnumMoniker **ppEnumMoniker,DWORD dwFlags) { return This->lpVtbl->CreateClassEnumerator(This,clsidDeviceClass,ppEnumMoniker,dwFlags); } #endif #endif #endif #endif /* __ICreateDevEnum_INTERFACE_DEFINED__ */ #define CHARS_IN_GUID 39 #ifdef WINE_NO_UNICODE_MACROS #undef GetTimeFormat #endif 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 = 0, PINDIR_OUTPUT = 1 } PIN_DIRECTION; #define MAX_PIN_NAME 128 #define MAX_FILTER_NAME 128 #ifndef REFERENCE_TIME_DEFINED #define REFERENCE_TIME_DEFINED typedef LONGLONG REFERENCE_TIME; #endif #ifndef REFTIME_DEFINED #define REFTIME_DEFINED typedef DOUBLE REFTIME; #endif 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 interface IAMovieSetup IAMovieSetup; #ifdef __cplusplus interface IAMovieSetup; #endif /* __cplusplus */ #endif #ifndef __IEnumFilters_FWD_DEFINED__ #define __IEnumFilters_FWD_DEFINED__ typedef interface IEnumFilters IEnumFilters; #ifdef __cplusplus interface IEnumFilters; #endif /* __cplusplus */ #endif #ifndef __IEnumMediaTypes_FWD_DEFINED__ #define __IEnumMediaTypes_FWD_DEFINED__ typedef interface IEnumMediaTypes IEnumMediaTypes; #ifdef __cplusplus interface IEnumMediaTypes; #endif /* __cplusplus */ #endif #ifndef __IEnumPins_FWD_DEFINED__ #define __IEnumPins_FWD_DEFINED__ typedef interface IEnumPins IEnumPins; #ifdef __cplusplus interface IEnumPins; #endif /* __cplusplus */ #endif #ifndef __IBaseFilter_FWD_DEFINED__ #define __IBaseFilter_FWD_DEFINED__ typedef interface IBaseFilter IBaseFilter; #ifdef __cplusplus interface IBaseFilter; #endif /* __cplusplus */ #endif #ifndef __IFilterGraph_FWD_DEFINED__ #define __IFilterGraph_FWD_DEFINED__ typedef interface IFilterGraph IFilterGraph; #ifdef __cplusplus interface IFilterGraph; #endif /* __cplusplus */ #endif #ifndef __IMediaFilter_FWD_DEFINED__ #define __IMediaFilter_FWD_DEFINED__ typedef interface IMediaFilter IMediaFilter; #ifdef __cplusplus interface IMediaFilter; #endif /* __cplusplus */ #endif #ifndef __IMediaSample_FWD_DEFINED__ #define __IMediaSample_FWD_DEFINED__ typedef interface IMediaSample IMediaSample; #ifdef __cplusplus interface IMediaSample; #endif /* __cplusplus */ #endif #ifndef __IMemAllocator_FWD_DEFINED__ #define __IMemAllocator_FWD_DEFINED__ typedef interface IMemAllocator IMemAllocator; #ifdef __cplusplus interface IMemAllocator; #endif /* __cplusplus */ #endif #ifndef __IMemAllocatorCallbackTemp_FWD_DEFINED__ #define __IMemAllocatorCallbackTemp_FWD_DEFINED__ typedef interface IMemAllocatorCallbackTemp IMemAllocatorCallbackTemp; #ifdef __cplusplus interface IMemAllocatorCallbackTemp; #endif /* __cplusplus */ #endif #ifndef __IMemAllocatorNotifyCallbackTemp_FWD_DEFINED__ #define __IMemAllocatorNotifyCallbackTemp_FWD_DEFINED__ typedef interface IMemAllocatorNotifyCallbackTemp IMemAllocatorNotifyCallbackTemp; #ifdef __cplusplus interface IMemAllocatorNotifyCallbackTemp; #endif /* __cplusplus */ #endif #ifndef __IMemInputPin_FWD_DEFINED__ #define __IMemInputPin_FWD_DEFINED__ typedef interface IMemInputPin IMemInputPin; #ifdef __cplusplus interface IMemInputPin; #endif /* __cplusplus */ #endif #ifndef __IPin_FWD_DEFINED__ #define __IPin_FWD_DEFINED__ typedef interface IPin IPin; #ifdef __cplusplus interface IPin; #endif /* __cplusplus */ #endif #ifndef __IReferenceClock_FWD_DEFINED__ #define __IReferenceClock_FWD_DEFINED__ typedef interface IReferenceClock IReferenceClock; #ifdef __cplusplus interface IReferenceClock; #endif /* __cplusplus */ #endif /***************************************************************************** * IPin interface */ #ifndef __IPin_INTERFACE_DEFINED__ #define __IPin_INTERFACE_DEFINED__ typedef struct _PinInfo { IBaseFilter *pFilter; PIN_DIRECTION dir; WCHAR achName[128]; } PIN_INFO; DEFINE_GUID(IID_IPin, 0x56a86891, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("56a86891-0ad4-11ce-b03a-0020af0ba770") 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; }; #ifdef __CRT_UUID_DECL __CRT_UUID_DECL(IPin, 0x56a86891, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70) #endif #else typedef struct IPinVtbl { BEGIN_INTERFACE /*** 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); END_INTERFACE } IPinVtbl; interface IPin { CONST_VTBL IPinVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ #define IPin_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IPin_AddRef(This) (This)->lpVtbl->AddRef(This) #define IPin_Release(This) (This)->lpVtbl->Release(This) /*** IPin methods ***/ #define IPin_Connect(This,pReceivePin,pmt) (This)->lpVtbl->Connect(This,pReceivePin,pmt) #define IPin_ReceiveConnection(This,pConnector,pmt) (This)->lpVtbl->ReceiveConnection(This,pConnector,pmt) #define IPin_Disconnect(This) (This)->lpVtbl->Disconnect(This) #define IPin_ConnectedTo(This,pPin) (This)->lpVtbl->ConnectedTo(This,pPin) #define IPin_ConnectionMediaType(This,pmt) (This)->lpVtbl->ConnectionMediaType(This,pmt) #define IPin_QueryPinInfo(This,pInfo) (This)->lpVtbl->QueryPinInfo(This,pInfo) #define IPin_QueryDirection(This,pPinDir) (This)->lpVtbl->QueryDirection(This,pPinDir) #define IPin_QueryId(This,Id) (This)->lpVtbl->QueryId(This,Id) #define IPin_QueryAccept(This,pmt) (This)->lpVtbl->QueryAccept(This,pmt) #define IPin_EnumMediaTypes(This,ppEnum) (This)->lpVtbl->EnumMediaTypes(This,ppEnum) #define IPin_QueryInternalConnections(This,apPin,nPin) (This)->lpVtbl->QueryInternalConnections(This,apPin,nPin) #define IPin_EndOfStream(This) (This)->lpVtbl->EndOfStream(This) #define IPin_BeginFlush(This) (This)->lpVtbl->BeginFlush(This) #define IPin_EndFlush(This) (This)->lpVtbl->EndFlush(This) #define IPin_NewSegment(This,tStart,tStop,dRate) (This)->lpVtbl->NewSegment(This,tStart,tStop,dRate) #else /*** IUnknown methods ***/ static inline HRESULT IPin_QueryInterface(IPin* This,REFIID riid,void **ppvObject) { return This->lpVtbl->QueryInterface(This,riid,ppvObject); } static inline ULONG IPin_AddRef(IPin* This) { return This->lpVtbl->AddRef(This); } static inline ULONG IPin_Release(IPin* This) { return This->lpVtbl->Release(This); } /*** IPin methods ***/ static inline HRESULT IPin_Connect(IPin* This,IPin *pReceivePin,const AM_MEDIA_TYPE *pmt) { return This->lpVtbl->Connect(This,pReceivePin,pmt); } static inline HRESULT IPin_ReceiveConnection(IPin* This,IPin *pConnector,const AM_MEDIA_TYPE *pmt) { return This->lpVtbl->ReceiveConnection(This,pConnector,pmt); } static inline HRESULT IPin_Disconnect(IPin* This) { return This->lpVtbl->Disconnect(This); } static inline HRESULT IPin_ConnectedTo(IPin* This,IPin **pPin) { return This->lpVtbl->ConnectedTo(This,pPin); } static inline HRESULT IPin_ConnectionMediaType(IPin* This,AM_MEDIA_TYPE *pmt) { return This->lpVtbl->ConnectionMediaType(This,pmt); } static inline HRESULT IPin_QueryPinInfo(IPin* This,PIN_INFO *pInfo) { return This->lpVtbl->QueryPinInfo(This,pInfo); } static inline HRESULT IPin_QueryDirection(IPin* This,PIN_DIRECTION *pPinDir) { return This->lpVtbl->QueryDirection(This,pPinDir); } static inline HRESULT IPin_QueryId(IPin* This,LPWSTR *Id) { return This->lpVtbl->QueryId(This,Id); } static inline HRESULT IPin_QueryAccept(IPin* This,const AM_MEDIA_TYPE *pmt) { return This->lpVtbl->QueryAccept(This,pmt); } static inline HRESULT IPin_EnumMediaTypes(IPin* This,IEnumMediaTypes **ppEnum) { return This->lpVtbl->EnumMediaTypes(This,ppEnum); } static inline HRESULT IPin_QueryInternalConnections(IPin* This,IPin **apPin,ULONG *nPin) { return This->lpVtbl->QueryInternalConnections(This,apPin,nPin); } static inline HRESULT IPin_EndOfStream(IPin* This) { return This->lpVtbl->EndOfStream(This); } static inline HRESULT IPin_BeginFlush(IPin* This) { return This->lpVtbl->BeginFlush(This); } static inline HRESULT IPin_EndFlush(IPin* This) { return This->lpVtbl->EndFlush(This); } static inline HRESULT IPin_NewSegment(IPin* This,REFERENCE_TIME tStart,REFERENCE_TIME tStop,double dRate) { return This->lpVtbl->NewSegment(This,tStart,tStop,dRate); } #endif #endif #endif #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) MIDL_INTERFACE("56a86892-0ad4-11ce-b03a-0020af0ba770") 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; }; #ifdef __CRT_UUID_DECL __CRT_UUID_DECL(IEnumPins, 0x56a86892, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70) #endif #else typedef struct IEnumPinsVtbl { BEGIN_INTERFACE /*** 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); END_INTERFACE } IEnumPinsVtbl; interface IEnumPins { CONST_VTBL IEnumPinsVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ #define IEnumPins_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IEnumPins_AddRef(This) (This)->lpVtbl->AddRef(This) #define IEnumPins_Release(This) (This)->lpVtbl->Release(This) /*** IEnumPins methods ***/ #define IEnumPins_Next(This,cPins,ppPins,pcFetched) (This)->lpVtbl->Next(This,cPins,ppPins,pcFetched) #define IEnumPins_Skip(This,cPins) (This)->lpVtbl->Skip(This,cPins) #define IEnumPins_Reset(This) (This)->lpVtbl->Reset(This) #define IEnumPins_Clone(This,ppEnum) (This)->lpVtbl->Clone(This,ppEnum) #else /*** IUnknown methods ***/ static inline HRESULT IEnumPins_QueryInterface(IEnumPins* This,REFIID riid,void **ppvObject) { return This->lpVtbl->QueryInterface(This,riid,ppvObject); } static inline ULONG IEnumPins_AddRef(IEnumPins* This) { return This->lpVtbl->AddRef(This); } static inline ULONG IEnumPins_Release(IEnumPins* This) { return This->lpVtbl->Release(This); } /*** IEnumPins methods ***/ static inline HRESULT IEnumPins_Next(IEnumPins* This,ULONG cPins,IPin **ppPins,ULONG *pcFetched) { return This->lpVtbl->Next(This,cPins,ppPins,pcFetched); } static inline HRESULT IEnumPins_Skip(IEnumPins* This,ULONG cPins) { return This->lpVtbl->Skip(This,cPins); } static inline HRESULT IEnumPins_Reset(IEnumPins* This) { return This->lpVtbl->Reset(This); } static inline HRESULT IEnumPins_Clone(IEnumPins* This,IEnumPins **ppEnum) { return This->lpVtbl->Clone(This,ppEnum); } #endif #endif #endif #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) MIDL_INTERFACE("89c31040-846b-11ce-97d3-00aa0055595a") 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; }; #ifdef __CRT_UUID_DECL __CRT_UUID_DECL(IEnumMediaTypes, 0x89c31040, 0x846b, 0x11ce, 0x97,0xd3, 0x00,0xaa,0x00,0x55,0x59,0x5a) #endif #else typedef struct IEnumMediaTypesVtbl { BEGIN_INTERFACE /*** 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); END_INTERFACE } IEnumMediaTypesVtbl; interface IEnumMediaTypes { CONST_VTBL IEnumMediaTypesVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ #define IEnumMediaTypes_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IEnumMediaTypes_AddRef(This) (This)->lpVtbl->AddRef(This) #define IEnumMediaTypes_Release(This) (This)->lpVtbl->Release(This) /*** IEnumMediaTypes methods ***/ #define IEnumMediaTypes_Next(This,cMediaTypes,ppMediaTypes,pcFetched) (This)->lpVtbl->Next(This,cMediaTypes,ppMediaTypes,pcFetched) #define IEnumMediaTypes_Skip(This,cMediaTypes) (This)->lpVtbl->Skip(This,cMediaTypes) #define IEnumMediaTypes_Reset(This) (This)->lpVtbl->Reset(This) #define IEnumMediaTypes_Clone(This,ppEnum) (This)->lpVtbl->Clone(This,ppEnum) #else /*** IUnknown methods ***/ static inline HRESULT IEnumMediaTypes_QueryInterface(IEnumMediaTypes* This,REFIID riid,void **ppvObject) { return This->lpVtbl->QueryInterface(This,riid,ppvObject); } static inline ULONG IEnumMediaTypes_AddRef(IEnumMediaTypes* This) { return This->lpVtbl->AddRef(This); } static inline ULONG IEnumMediaTypes_Release(IEnumMediaTypes* This) { return This->lpVtbl->Release(This); } /*** IEnumMediaTypes methods ***/ static inline HRESULT IEnumMediaTypes_Next(IEnumMediaTypes* This,ULONG cMediaTypes,AM_MEDIA_TYPE **ppMediaTypes,ULONG *pcFetched) { return This->lpVtbl->Next(This,cMediaTypes,ppMediaTypes,pcFetched); } static inline HRESULT IEnumMediaTypes_Skip(IEnumMediaTypes* This,ULONG cMediaTypes) { return This->lpVtbl->Skip(This,cMediaTypes); } static inline HRESULT IEnumMediaTypes_Reset(IEnumMediaTypes* This) { return This->lpVtbl->Reset(This); } static inline HRESULT IEnumMediaTypes_Clone(IEnumMediaTypes* This,IEnumMediaTypes **ppEnum) { return This->lpVtbl->Clone(This,ppEnum); } #endif #endif #endif #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) MIDL_INTERFACE("56a8689f-0ad4-11ce-b03a-0020af0ba770") 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; }; #ifdef __CRT_UUID_DECL __CRT_UUID_DECL(IFilterGraph, 0x56a8689f, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70) #endif #else typedef struct IFilterGraphVtbl { BEGIN_INTERFACE /*** 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); END_INTERFACE } IFilterGraphVtbl; interface IFilterGraph { CONST_VTBL IFilterGraphVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ #define IFilterGraph_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IFilterGraph_AddRef(This) (This)->lpVtbl->AddRef(This) #define IFilterGraph_Release(This) (This)->lpVtbl->Release(This) /*** IFilterGraph methods ***/ #define IFilterGraph_AddFilter(This,pFilter,pName) (This)->lpVtbl->AddFilter(This,pFilter,pName) #define IFilterGraph_RemoveFilter(This,pFilter) (This)->lpVtbl->RemoveFilter(This,pFilter) #define IFilterGraph_EnumFilters(This,ppEnum) (This)->lpVtbl->EnumFilters(This,ppEnum) #define IFilterGraph_FindFilterByName(This,pName,ppFilter) (This)->lpVtbl->FindFilterByName(This,pName,ppFilter) #define IFilterGraph_ConnectDirect(This,ppinOut,ppinIn,pmt) (This)->lpVtbl->ConnectDirect(This,ppinOut,ppinIn,pmt) #define IFilterGraph_Reconnect(This,ppin) (This)->lpVtbl->Reconnect(This,ppin) #define IFilterGraph_Disconnect(This,ppin) (This)->lpVtbl->Disconnect(This,ppin) #define IFilterGraph_SetDefaultSyncSource(This) (This)->lpVtbl->SetDefaultSyncSource(This) #else /*** IUnknown methods ***/ static inline HRESULT IFilterGraph_QueryInterface(IFilterGraph* This,REFIID riid,void **ppvObject) { return This->lpVtbl->QueryInterface(This,riid,ppvObject); } static inline ULONG IFilterGraph_AddRef(IFilterGraph* This) { return This->lpVtbl->AddRef(This); } static inline ULONG IFilterGraph_Release(IFilterGraph* This) { return This->lpVtbl->Release(This); } /*** IFilterGraph methods ***/ static inline HRESULT IFilterGraph_AddFilter(IFilterGraph* This,IBaseFilter *pFilter,LPCWSTR pName) { return This->lpVtbl->AddFilter(This,pFilter,pName); } static inline HRESULT IFilterGraph_RemoveFilter(IFilterGraph* This,IBaseFilter *pFilter) { return This->lpVtbl->RemoveFilter(This,pFilter); } static inline HRESULT IFilterGraph_EnumFilters(IFilterGraph* This,IEnumFilters **ppEnum) { return This->lpVtbl->EnumFilters(This,ppEnum); } static inline HRESULT IFilterGraph_FindFilterByName(IFilterGraph* This,LPCWSTR pName,IBaseFilter **ppFilter) { return This->lpVtbl->FindFilterByName(This,pName,ppFilter); } static inline HRESULT IFilterGraph_ConnectDirect(IFilterGraph* This,IPin *ppinOut,IPin *ppinIn,const AM_MEDIA_TYPE *pmt) { return This->lpVtbl->ConnectDirect(This,ppinOut,ppinIn,pmt); } static inline HRESULT IFilterGraph_Reconnect(IFilterGraph* This,IPin *ppin) { return This->lpVtbl->Reconnect(This,ppin); } static inline HRESULT IFilterGraph_Disconnect(IFilterGraph* This,IPin *ppin) { return This->lpVtbl->Disconnect(This,ppin); } static inline HRESULT IFilterGraph_SetDefaultSyncSource(IFilterGraph* This) { return This->lpVtbl->SetDefaultSyncSource(This); } #endif #endif #endif #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) MIDL_INTERFACE("56a86893-0ad4-11ce-b03a-0020af0ba770") 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; }; #ifdef __CRT_UUID_DECL __CRT_UUID_DECL(IEnumFilters, 0x56a86893, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70) #endif #else typedef struct IEnumFiltersVtbl { BEGIN_INTERFACE /*** 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); END_INTERFACE } IEnumFiltersVtbl; interface IEnumFilters { CONST_VTBL IEnumFiltersVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ #define IEnumFilters_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IEnumFilters_AddRef(This) (This)->lpVtbl->AddRef(This) #define IEnumFilters_Release(This) (This)->lpVtbl->Release(This) /*** IEnumFilters methods ***/ #define IEnumFilters_Next(This,cFilters,ppFilter,pcFetched) (This)->lpVtbl->Next(This,cFilters,ppFilter,pcFetched) #define IEnumFilters_Skip(This,cFilters) (This)->lpVtbl->Skip(This,cFilters) #define IEnumFilters_Reset(This) (This)->lpVtbl->Reset(This) #define IEnumFilters_Clone(This,ppEnum) (This)->lpVtbl->Clone(This,ppEnum) #else /*** IUnknown methods ***/ static inline HRESULT IEnumFilters_QueryInterface(IEnumFilters* This,REFIID riid,void **ppvObject) { return This->lpVtbl->QueryInterface(This,riid,ppvObject); } static inline ULONG IEnumFilters_AddRef(IEnumFilters* This) { return This->lpVtbl->AddRef(This); } static inline ULONG IEnumFilters_Release(IEnumFilters* This) { return This->lpVtbl->Release(This); } /*** IEnumFilters methods ***/ static inline HRESULT IEnumFilters_Next(IEnumFilters* This,ULONG cFilters,IBaseFilter **ppFilter,ULONG *pcFetched) { return This->lpVtbl->Next(This,cFilters,ppFilter,pcFetched); } static inline HRESULT IEnumFilters_Skip(IEnumFilters* This,ULONG cFilters) { return This->lpVtbl->Skip(This,cFilters); } static inline HRESULT IEnumFilters_Reset(IEnumFilters* This) { return This->lpVtbl->Reset(This); } static inline HRESULT IEnumFilters_Clone(IEnumFilters* This,IEnumFilters **ppEnum) { return This->lpVtbl->Clone(This,ppEnum); } #endif #endif #endif #endif /* __IEnumFilters_INTERFACE_DEFINED__ */ typedef IEnumFilters *PENUMFILTERS; /***************************************************************************** * IMediaFilter interface */ #ifndef __IMediaFilter_INTERFACE_DEFINED__ #define __IMediaFilter_INTERFACE_DEFINED__ typedef enum _FilterState { State_Stopped = 0, State_Paused = 1, State_Running = 2 } FILTER_STATE; DEFINE_GUID(IID_IMediaFilter, 0x56a86899, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("56a86899-0ad4-11ce-b03a-0020af0ba770") 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; }; #ifdef __CRT_UUID_DECL __CRT_UUID_DECL(IMediaFilter, 0x56a86899, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70) #endif #else typedef struct IMediaFilterVtbl { BEGIN_INTERFACE /*** 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); END_INTERFACE } IMediaFilterVtbl; interface IMediaFilter { CONST_VTBL IMediaFilterVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ #define IMediaFilter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IMediaFilter_AddRef(This) (This)->lpVtbl->AddRef(This) #define IMediaFilter_Release(This) (This)->lpVtbl->Release(This) /*** IPersist methods ***/ #define IMediaFilter_GetClassID(This,pClassID) (This)->lpVtbl->GetClassID(This,pClassID) /*** IMediaFilter methods ***/ #define IMediaFilter_Stop(This) (This)->lpVtbl->Stop(This) #define IMediaFilter_Pause(This) (This)->lpVtbl->Pause(This) #define IMediaFilter_Run(This,tStart) (This)->lpVtbl->Run(This,tStart) #define IMediaFilter_GetState(This,dwMilliSecsTimeout,State) (This)->lpVtbl->GetState(This,dwMilliSecsTimeout,State) #define IMediaFilter_SetSyncSource(This,pClock) (This)->lpVtbl->SetSyncSource(This,pClock) #define IMediaFilter_GetSyncSource(This,pClock) (This)->lpVtbl->GetSyncSource(This,pClock) #else /*** IUnknown methods ***/ static inline HRESULT IMediaFilter_QueryInterface(IMediaFilter* This,REFIID riid,void **ppvObject) { return This->lpVtbl->QueryInterface(This,riid,ppvObject); } static inline ULONG IMediaFilter_AddRef(IMediaFilter* This) { return This->lpVtbl->AddRef(This); } static inline ULONG IMediaFilter_Release(IMediaFilter* This) { return This->lpVtbl->Release(This); } /*** IPersist methods ***/ static inline HRESULT IMediaFilter_GetClassID(IMediaFilter* This,CLSID *pClassID) { return This->lpVtbl->GetClassID(This,pClassID); } /*** IMediaFilter methods ***/ static inline HRESULT IMediaFilter_Stop(IMediaFilter* This) { return This->lpVtbl->Stop(This); } static inline HRESULT IMediaFilter_Pause(IMediaFilter* This) { return This->lpVtbl->Pause(This); } static inline HRESULT IMediaFilter_Run(IMediaFilter* This,REFERENCE_TIME tStart) { return This->lpVtbl->Run(This,tStart); } static inline HRESULT IMediaFilter_GetState(IMediaFilter* This,DWORD dwMilliSecsTimeout,FILTER_STATE *State) { return This->lpVtbl->GetState(This,dwMilliSecsTimeout,State); } static inline HRESULT IMediaFilter_SetSyncSource(IMediaFilter* This,IReferenceClock *pClock) { return This->lpVtbl->SetSyncSource(This,pClock); } static inline HRESULT IMediaFilter_GetSyncSource(IMediaFilter* This,IReferenceClock **pClock) { return This->lpVtbl->GetSyncSource(This,pClock); } #endif #endif #endif #endif /* __IMediaFilter_INTERFACE_DEFINED__ */ typedef IMediaFilter *PMEDIAFILTER; /***************************************************************************** * IBaseFilter interface */ #ifndef __IBaseFilter_INTERFACE_DEFINED__ #define __IBaseFilter_INTERFACE_DEFINED__ typedef struct _FilterInfo { WCHAR achName[128]; IFilterGraph *pGraph; } FILTER_INFO; DEFINE_GUID(IID_IBaseFilter, 0x56a86895, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("56a86895-0ad4-11ce-b03a-0020af0ba770") 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; }; #ifdef __CRT_UUID_DECL __CRT_UUID_DECL(IBaseFilter, 0x56a86895, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70) #endif #else typedef struct IBaseFilterVtbl { BEGIN_INTERFACE /*** 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); END_INTERFACE } IBaseFilterVtbl; interface IBaseFilter { CONST_VTBL IBaseFilterVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ #define IBaseFilter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IBaseFilter_AddRef(This) (This)->lpVtbl->AddRef(This) #define IBaseFilter_Release(This) (This)->lpVtbl->Release(This) /*** IPersist methods ***/ #define IBaseFilter_GetClassID(This,pClassID) (This)->lpVtbl->GetClassID(This,pClassID) /*** IMediaFilter methods ***/ #define IBaseFilter_Stop(This) (This)->lpVtbl->Stop(This) #define IBaseFilter_Pause(This) (This)->lpVtbl->Pause(This) #define IBaseFilter_Run(This,tStart) (This)->lpVtbl->Run(This,tStart) #define IBaseFilter_GetState(This,dwMilliSecsTimeout,State) (This)->lpVtbl->GetState(This,dwMilliSecsTimeout,State) #define IBaseFilter_SetSyncSource(This,pClock) (This)->lpVtbl->SetSyncSource(This,pClock) #define IBaseFilter_GetSyncSource(This,pClock) (This)->lpVtbl->GetSyncSource(This,pClock) /*** IBaseFilter methods ***/ #define IBaseFilter_EnumPins(This,ppEnum) (This)->lpVtbl->EnumPins(This,ppEnum) #define IBaseFilter_FindPin(This,Id,ppPin) (This)->lpVtbl->FindPin(This,Id,ppPin) #define IBaseFilter_QueryFilterInfo(This,pInfo) (This)->lpVtbl->QueryFilterInfo(This,pInfo) #define IBaseFilter_JoinFilterGraph(This,pGraph,pName) (This)->lpVtbl->JoinFilterGraph(This,pGraph,pName) #define IBaseFilter_QueryVendorInfo(This,pVendorInfo) (This)->lpVtbl->QueryVendorInfo(This,pVendorInfo) #else /*** IUnknown methods ***/ static inline HRESULT IBaseFilter_QueryInterface(IBaseFilter* This,REFIID riid,void **ppvObject) { return This->lpVtbl->QueryInterface(This,riid,ppvObject); } static inline ULONG IBaseFilter_AddRef(IBaseFilter* This) { return This->lpVtbl->AddRef(This); } static inline ULONG IBaseFilter_Release(IBaseFilter* This) { return This->lpVtbl->Release(This); } /*** IPersist methods ***/ static inline HRESULT IBaseFilter_GetClassID(IBaseFilter* This,CLSID *pClassID) { return This->lpVtbl->GetClassID(This,pClassID); } /*** IMediaFilter methods ***/ static inline HRESULT IBaseFilter_Stop(IBaseFilter* This) { return This->lpVtbl->Stop(This); } static inline HRESULT IBaseFilter_Pause(IBaseFilter* This) { return This->lpVtbl->Pause(This); } static inline HRESULT IBaseFilter_Run(IBaseFilter* This,REFERENCE_TIME tStart) { return This->lpVtbl->Run(This,tStart); } static inline HRESULT IBaseFilter_GetState(IBaseFilter* This,DWORD dwMilliSecsTimeout,FILTER_STATE *State) { return This->lpVtbl->GetState(This,dwMilliSecsTimeout,State); } static inline HRESULT IBaseFilter_SetSyncSource(IBaseFilter* This,IReferenceClock *pClock) { return This->lpVtbl->SetSyncSource(This,pClock); } static inline HRESULT IBaseFilter_GetSyncSource(IBaseFilter* This,IReferenceClock **pClock) { return This->lpVtbl->GetSyncSource(This,pClock); } /*** IBaseFilter methods ***/ static inline HRESULT IBaseFilter_EnumPins(IBaseFilter* This,IEnumPins **ppEnum) { return This->lpVtbl->EnumPins(This,ppEnum); } static inline HRESULT IBaseFilter_FindPin(IBaseFilter* This,LPCWSTR Id,IPin **ppPin) { return This->lpVtbl->FindPin(This,Id,ppPin); } static inline HRESULT IBaseFilter_QueryFilterInfo(IBaseFilter* This,FILTER_INFO *pInfo) { return This->lpVtbl->QueryFilterInfo(This,pInfo); } static inline HRESULT IBaseFilter_JoinFilterGraph(IBaseFilter* This,IFilterGraph *pGraph,LPCWSTR pName) { return This->lpVtbl->JoinFilterGraph(This,pGraph,pName); } static inline HRESULT IBaseFilter_QueryVendorInfo(IBaseFilter* This,LPWSTR *pVendorInfo) { return This->lpVtbl->QueryVendorInfo(This,pVendorInfo); } #endif #endif #endif #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) MIDL_INTERFACE("56a86897-0ad4-11ce-b03a-0020af0ba770") 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; }; #ifdef __CRT_UUID_DECL __CRT_UUID_DECL(IReferenceClock, 0x56a86897, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70) #endif #else typedef struct IReferenceClockVtbl { BEGIN_INTERFACE /*** 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); END_INTERFACE } IReferenceClockVtbl; interface IReferenceClock { CONST_VTBL IReferenceClockVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ #define IReferenceClock_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IReferenceClock_AddRef(This) (This)->lpVtbl->AddRef(This) #define IReferenceClock_Release(This) (This)->lpVtbl->Release(This) /*** IReferenceClock methods ***/ #define IReferenceClock_GetTime(This,pTime) (This)->lpVtbl->GetTime(This,pTime) #define IReferenceClock_AdviseTime(This,baseTime,streamTime,hEvent,pdwAdviseCookie) (This)->lpVtbl->AdviseTime(This,baseTime,streamTime,hEvent,pdwAdviseCookie) #define IReferenceClock_AdvisePeriodic(This,startTime,periodTime,hSemaphore,pdwAdviseCookie) (This)->lpVtbl->AdvisePeriodic(This,startTime,periodTime,hSemaphore,pdwAdviseCookie) #define IReferenceClock_Unadvise(This,dwAdviseCookie) (This)->lpVtbl->Unadvise(This,dwAdviseCookie) #else /*** IUnknown methods ***/ static inline HRESULT IReferenceClock_QueryInterface(IReferenceClock* This,REFIID riid,void **ppvObject) { return This->lpVtbl->QueryInterface(This,riid,ppvObject); } static inline ULONG IReferenceClock_AddRef(IReferenceClock* This) { return This->lpVtbl->AddRef(This); } static inline ULONG IReferenceClock_Release(IReferenceClock* This) { return This->lpVtbl->Release(This); } /*** IReferenceClock methods ***/ static inline HRESULT IReferenceClock_GetTime(IReferenceClock* This,REFERENCE_TIME *pTime) { return This->lpVtbl->GetTime(This,pTime); } static inline HRESULT IReferenceClock_AdviseTime(IReferenceClock* This,REFERENCE_TIME baseTime,REFERENCE_TIME streamTime,HEVENT hEvent,DWORD_PTR *pdwAdviseCookie) { return This->lpVtbl->AdviseTime(This,baseTime,streamTime,hEvent,pdwAdviseCookie); } static inline HRESULT IReferenceClock_AdvisePeriodic(IReferenceClock* This,REFERENCE_TIME startTime,REFERENCE_TIME periodTime,HSEMAPHORE hSemaphore,DWORD_PTR *pdwAdviseCookie) { return This->lpVtbl->AdvisePeriodic(This,startTime,periodTime,hSemaphore,pdwAdviseCookie); } static inline HRESULT IReferenceClock_Unadvise(IReferenceClock* This,DWORD_PTR dwAdviseCookie) { return This->lpVtbl->Unadvise(This,dwAdviseCookie); } #endif #endif #endif #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) MIDL_INTERFACE("56a8689a-0ad4-11ce-b03a-0020af0ba770") 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; }; #ifdef __CRT_UUID_DECL __CRT_UUID_DECL(IMediaSample, 0x56a8689a, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70) #endif #else typedef struct IMediaSampleVtbl { BEGIN_INTERFACE /*** 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); END_INTERFACE } IMediaSampleVtbl; interface IMediaSample { CONST_VTBL IMediaSampleVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ #define IMediaSample_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IMediaSample_AddRef(This) (This)->lpVtbl->AddRef(This) #define IMediaSample_Release(This) (This)->lpVtbl->Release(This) /*** IMediaSample methods ***/ #define IMediaSample_GetPointer(This,ppBuffer) (This)->lpVtbl->GetPointer(This,ppBuffer) #define IMediaSample_GetSize(This) (This)->lpVtbl->GetSize(This) #define IMediaSample_GetTime(This,pTimeStart,pTimeEnd) (This)->lpVtbl->GetTime(This,pTimeStart,pTimeEnd) #define IMediaSample_SetTime(This,pTimeStart,pTimeEnd) (This)->lpVtbl->SetTime(This,pTimeStart,pTimeEnd) #define IMediaSample_IsSyncPoint(This) (This)->lpVtbl->IsSyncPoint(This) #define IMediaSample_SetSyncPoint(This,bIsSyncPoint) (This)->lpVtbl->SetSyncPoint(This,bIsSyncPoint) #define IMediaSample_IsPreroll(This) (This)->lpVtbl->IsPreroll(This) #define IMediaSample_SetPreroll(This,bIsPreroll) (This)->lpVtbl->SetPreroll(This,bIsPreroll) #define IMediaSample_GetActualDataLength(This) (This)->lpVtbl->GetActualDataLength(This) #define IMediaSample_SetActualDataLength(This,length) (This)->lpVtbl->SetActualDataLength(This,length) #define IMediaSample_GetMediaType(This,ppMediaType) (This)->lpVtbl->GetMediaType(This,ppMediaType) #define IMediaSample_SetMediaType(This,pMediaType) (This)->lpVtbl->SetMediaType(This,pMediaType) #define IMediaSample_IsDiscontinuity(This) (This)->lpVtbl->IsDiscontinuity(This) #define IMediaSample_SetDiscontinuity(This,bDiscontinuity) (This)->lpVtbl->SetDiscontinuity(This,bDiscontinuity) #define IMediaSample_GetMediaTime(This,pTimeStart,pTimeEnd) (This)->lpVtbl->GetMediaTime(This,pTimeStart,pTimeEnd) #define IMediaSample_SetMediaTime(This,pTimeStart,pTimeEnd) (This)->lpVtbl->SetMediaTime(This,pTimeStart,pTimeEnd) #else /*** IUnknown methods ***/ static inline HRESULT IMediaSample_QueryInterface(IMediaSample* This,REFIID riid,void **ppvObject) { return This->lpVtbl->QueryInterface(This,riid,ppvObject); } static inline ULONG IMediaSample_AddRef(IMediaSample* This) { return This->lpVtbl->AddRef(This); } static inline ULONG IMediaSample_Release(IMediaSample* This) { return This->lpVtbl->Release(This); } /*** IMediaSample methods ***/ static inline HRESULT IMediaSample_GetPointer(IMediaSample* This,BYTE **ppBuffer) { return This->lpVtbl->GetPointer(This,ppBuffer); } static inline LONG IMediaSample_GetSize(IMediaSample* This) { return This->lpVtbl->GetSize(This); } static inline HRESULT IMediaSample_GetTime(IMediaSample* This,REFERENCE_TIME *pTimeStart,REFERENCE_TIME *pTimeEnd) { return This->lpVtbl->GetTime(This,pTimeStart,pTimeEnd); } static inline HRESULT IMediaSample_SetTime(IMediaSample* This,REFERENCE_TIME *pTimeStart,REFERENCE_TIME *pTimeEnd) { return This->lpVtbl->SetTime(This,pTimeStart,pTimeEnd); } static inline HRESULT IMediaSample_IsSyncPoint(IMediaSample* This) { return This->lpVtbl->IsSyncPoint(This); } static inline HRESULT IMediaSample_SetSyncPoint(IMediaSample* This,BOOL bIsSyncPoint) { return This->lpVtbl->SetSyncPoint(This,bIsSyncPoint); } static inline HRESULT IMediaSample_IsPreroll(IMediaSample* This) { return This->lpVtbl->IsPreroll(This); } static inline HRESULT IMediaSample_SetPreroll(IMediaSample* This,BOOL bIsPreroll) { return This->lpVtbl->SetPreroll(This,bIsPreroll); } static inline LONG IMediaSample_GetActualDataLength(IMediaSample* This) { return This->lpVtbl->GetActualDataLength(This); } static inline HRESULT IMediaSample_SetActualDataLength(IMediaSample* This,LONG length) { return This->lpVtbl->SetActualDataLength(This,length); } static inline HRESULT IMediaSample_GetMediaType(IMediaSample* This,AM_MEDIA_TYPE **ppMediaType) { return This->lpVtbl->GetMediaType(This,ppMediaType); } static inline HRESULT IMediaSample_SetMediaType(IMediaSample* This,AM_MEDIA_TYPE *pMediaType) { return This->lpVtbl->SetMediaType(This,pMediaType); } static inline HRESULT IMediaSample_IsDiscontinuity(IMediaSample* This) { return This->lpVtbl->IsDiscontinuity(This); } static inline HRESULT IMediaSample_SetDiscontinuity(IMediaSample* This,BOOL bDiscontinuity) { return This->lpVtbl->SetDiscontinuity(This,bDiscontinuity); } static inline HRESULT IMediaSample_GetMediaTime(IMediaSample* This,LONGLONG *pTimeStart,LONGLONG *pTimeEnd) { return This->lpVtbl->GetMediaTime(This,pTimeStart,pTimeEnd); } static inline HRESULT IMediaSample_SetMediaTime(IMediaSample* This,LONGLONG *pTimeStart,LONGLONG *pTimeEnd) { return This->lpVtbl->SetMediaTime(This,pTimeStart,pTimeEnd); } #endif #endif #endif #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; /***************************************************************************** * 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) MIDL_INTERFACE("36b73884-c2c8-11cf-8b46-00805f6cef60") IMediaSample2 : public IMediaSample { virtual HRESULT STDMETHODCALLTYPE GetProperties( DWORD cbProperties, BYTE *pbProperties) = 0; virtual HRESULT STDMETHODCALLTYPE SetProperties( DWORD cbProperties, const BYTE *pbProperties) = 0; }; #ifdef __CRT_UUID_DECL __CRT_UUID_DECL(IMediaSample2, 0x36b73884, 0xc2c8, 0x11cf, 0x8b,0x46, 0x00,0x80,0x5f,0x6c,0xef,0x60) #endif #else typedef struct IMediaSample2Vtbl { BEGIN_INTERFACE /*** 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); END_INTERFACE } IMediaSample2Vtbl; interface IMediaSample2 { CONST_VTBL IMediaSample2Vtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ #define IMediaSample2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IMediaSample2_AddRef(This) (This)->lpVtbl->AddRef(This) #define IMediaSample2_Release(This) (This)->lpVtbl->Release(This) /*** IMediaSample methods ***/ #define IMediaSample2_GetPointer(This,ppBuffer) (This)->lpVtbl->GetPointer(This,ppBuffer) #define IMediaSample2_GetSize(This) (This)->lpVtbl->GetSize(This) #define IMediaSample2_GetTime(This,pTimeStart,pTimeEnd) (This)->lpVtbl->GetTime(This,pTimeStart,pTimeEnd) #define IMediaSample2_SetTime(This,pTimeStart,pTimeEnd) (This)->lpVtbl->SetTime(This,pTimeStart,pTimeEnd) #define IMediaSample2_IsSyncPoint(This) (This)->lpVtbl->IsSyncPoint(This) #define IMediaSample2_SetSyncPoint(This,bIsSyncPoint) (This)->lpVtbl->SetSyncPoint(This,bIsSyncPoint) #define IMediaSample2_IsPreroll(This) (This)->lpVtbl->IsPreroll(This) #define IMediaSample2_SetPreroll(This,bIsPreroll) (This)->lpVtbl->SetPreroll(This,bIsPreroll) #define IMediaSample2_GetActualDataLength(This) (This)->lpVtbl->GetActualDataLength(This) #define IMediaSample2_SetActualDataLength(This,length) (This)->lpVtbl->SetActualDataLength(This,length) #define IMediaSample2_GetMediaType(This,ppMediaType) (This)->lpVtbl->GetMediaType(This,ppMediaType) #define IMediaSample2_SetMediaType(This,pMediaType) (This)->lpVtbl->SetMediaType(This,pMediaType) #define IMediaSample2_IsDiscontinuity(This) (This)->lpVtbl->IsDiscontinuity(This) #define IMediaSample2_SetDiscontinuity(This,bDiscontinuity) (This)->lpVtbl->SetDiscontinuity(This,bDiscontinuity) #define IMediaSample2_GetMediaTime(This,pTimeStart,pTimeEnd) (This)->lpVtbl->GetMediaTime(This,pTimeStart,pTimeEnd) #define IMediaSample2_SetMediaTime(This,pTimeStart,pTimeEnd) (This)->lpVtbl->SetMediaTime(This,pTimeStart,pTimeEnd) /*** IMediaSample2 methods ***/ #define IMediaSample2_GetProperties(This,cbProperties,pbProperties) (This)->lpVtbl->GetProperties(This,cbProperties,pbProperties) #define IMediaSample2_SetProperties(This,cbProperties,pbProperties) (This)->lpVtbl->SetProperties(This,cbProperties,pbProperties) #else /*** IUnknown methods ***/ static inline HRESULT IMediaSample2_QueryInterface(IMediaSample2* This,REFIID riid,void **ppvObject) { return This->lpVtbl->QueryInterface(This,riid,ppvObject); } static inline ULONG IMediaSample2_AddRef(IMediaSample2* This) { return This->lpVtbl->AddRef(This); } static inline ULONG IMediaSample2_Release(IMediaSample2* This) { return This->lpVtbl->Release(This); } /*** IMediaSample methods ***/ static inline HRESULT IMediaSample2_GetPointer(IMediaSample2* This,BYTE **ppBuffer) { return This->lpVtbl->GetPointer(This,ppBuffer); } static inline LONG IMediaSample2_GetSize(IMediaSample2* This) { return This->lpVtbl->GetSize(This); } static inline HRESULT IMediaSample2_GetTime(IMediaSample2* This,REFERENCE_TIME *pTimeStart,REFERENCE_TIME *pTimeEnd) { return This->lpVtbl->GetTime(This,pTimeStart,pTimeEnd); } static inline HRESULT IMediaSample2_SetTime(IMediaSample2* This,REFERENCE_TIME *pTimeStart,REFERENCE_TIME *pTimeEnd) { return This->lpVtbl->SetTime(This,pTimeStart,pTimeEnd); } static inline HRESULT IMediaSample2_IsSyncPoint(IMediaSample2* This) { return This->lpVtbl->IsSyncPoint(This); } static inline HRESULT IMediaSample2_SetSyncPoint(IMediaSample2* This,BOOL bIsSyncPoint) { return This->lpVtbl->SetSyncPoint(This,bIsSyncPoint); } static inline HRESULT IMediaSample2_IsPreroll(IMediaSample2* This) { return This->lpVtbl->IsPreroll(This); } static inline HRESULT IMediaSample2_SetPreroll(IMediaSample2* This,BOOL bIsPreroll) { return This->lpVtbl->SetPreroll(This,bIsPreroll); } static inline LONG IMediaSample2_GetActualDataLength(IMediaSample2* This) { return This->lpVtbl->GetActualDataLength(This); } static inline HRESULT IMediaSample2_SetActualDataLength(IMediaSample2* This,LONG length) { return This->lpVtbl->SetActualDataLength(This,length); } static inline HRESULT IMediaSample2_GetMediaType(IMediaSample2* This,AM_MEDIA_TYPE **ppMediaType) { return This->lpVtbl->GetMediaType(This,ppMediaType); } static inline HRESULT IMediaSample2_SetMediaType(IMediaSample2* This,AM_MEDIA_TYPE *pMediaType) { return This->lpVtbl->SetMediaType(This,pMediaType); } static inline HRESULT IMediaSample2_IsDiscontinuity(IMediaSample2* This) { return This->lpVtbl->IsDiscontinuity(This); } static inline HRESULT IMediaSample2_SetDiscontinuity(IMediaSample2* This,BOOL bDiscontinuity) { return This->lpVtbl->SetDiscontinuity(This,bDiscontinuity); } static inline HRESULT IMediaSample2_GetMediaTime(IMediaSample2* This,LONGLONG *pTimeStart,LONGLONG *pTimeEnd) { return This->lpVtbl->GetMediaTime(This,pTimeStart,pTimeEnd); } static inline HRESULT IMediaSample2_SetMediaTime(IMediaSample2* This,LONGLONG *pTimeStart,LONGLONG *pTimeEnd) { return This->lpVtbl->SetMediaTime(This,pTimeStart,pTimeEnd); } /*** IMediaSample2 methods ***/ static inline HRESULT IMediaSample2_GetProperties(IMediaSample2* This,DWORD cbProperties,BYTE *pbProperties) { return This->lpVtbl->GetProperties(This,cbProperties,pbProperties); } static inline HRESULT IMediaSample2_SetProperties(IMediaSample2* This,DWORD cbProperties,const BYTE *pbProperties) { return This->lpVtbl->SetProperties(This,cbProperties,pbProperties); } #endif #endif #endif #endif /* __IMediaSample2_INTERFACE_DEFINED__ */ typedef IMediaSample2 *PMEDIASAMPLE2; #define AM_GBF_PREVFRAMESKIPPED 1 #define AM_GBF_NOTASYNCPOINT 2 #define AM_GBF_NOWAIT 4 #define AM_GBF_NODDSURFACELOCK 8 /***************************************************************************** * 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) MIDL_INTERFACE("56a8689c-0ad4-11ce-b03a-0020af0ba770") 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; }; #ifdef __CRT_UUID_DECL __CRT_UUID_DECL(IMemAllocator, 0x56a8689c, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70) #endif #else typedef struct IMemAllocatorVtbl { BEGIN_INTERFACE /*** 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); END_INTERFACE } IMemAllocatorVtbl; interface IMemAllocator { CONST_VTBL IMemAllocatorVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ #define IMemAllocator_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IMemAllocator_AddRef(This) (This)->lpVtbl->AddRef(This) #define IMemAllocator_Release(This) (This)->lpVtbl->Release(This) /*** IMemAllocator methods ***/ #define IMemAllocator_SetProperties(This,pRequest,pActual) (This)->lpVtbl->SetProperties(This,pRequest,pActual) #define IMemAllocator_GetProperties(This,pProps) (This)->lpVtbl->GetProperties(This,pProps) #define IMemAllocator_Commit(This) (This)->lpVtbl->Commit(This) #define IMemAllocator_Decommit(This) (This)->lpVtbl->Decommit(This) #define IMemAllocator_GetBuffer(This,ppBuffer,pStartTime,pEndTime,dwFlags) (This)->lpVtbl->GetBuffer(This,ppBuffer,pStartTime,pEndTime,dwFlags) #define IMemAllocator_ReleaseBuffer(This,pBuffer) (This)->lpVtbl->ReleaseBuffer(This,pBuffer) #else /*** IUnknown methods ***/ static inline HRESULT IMemAllocator_QueryInterface(IMemAllocator* This,REFIID riid,void **ppvObject) { return This->lpVtbl->QueryInterface(This,riid,ppvObject); } static inline ULONG IMemAllocator_AddRef(IMemAllocator* This) { return This->lpVtbl->AddRef(This); } static inline ULONG IMemAllocator_Release(IMemAllocator* This) { return This->lpVtbl->Release(This); } /*** IMemAllocator methods ***/ static inline HRESULT IMemAllocator_SetProperties(IMemAllocator* This,ALLOCATOR_PROPERTIES *pRequest,ALLOCATOR_PROPERTIES *pActual) { return This->lpVtbl->SetProperties(This,pRequest,pActual); } static inline HRESULT IMemAllocator_GetProperties(IMemAllocator* This,ALLOCATOR_PROPERTIES *pProps) { return This->lpVtbl->GetProperties(This,pProps); } static inline HRESULT IMemAllocator_Commit(IMemAllocator* This) { return This->lpVtbl->Commit(This); } static inline HRESULT IMemAllocator_Decommit(IMemAllocator* This) { return This->lpVtbl->Decommit(This); } static inline HRESULT IMemAllocator_GetBuffer(IMemAllocator* This,IMediaSample **ppBuffer,REFERENCE_TIME *pStartTime,REFERENCE_TIME *pEndTime,DWORD dwFlags) { return This->lpVtbl->GetBuffer(This,ppBuffer,pStartTime,pEndTime,dwFlags); } static inline HRESULT IMemAllocator_ReleaseBuffer(IMemAllocator* This,IMediaSample *pBuffer) { return This->lpVtbl->ReleaseBuffer(This,pBuffer); } #endif #endif #endif #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) MIDL_INTERFACE("379a0cf0-c1de-11d2-abf5-00a0c905f375") IMemAllocatorCallbackTemp : public IMemAllocator { virtual HRESULT STDMETHODCALLTYPE SetNotify( IMemAllocatorNotifyCallbackTemp *pNotify) = 0; virtual HRESULT STDMETHODCALLTYPE GetFreeCount( LONG *plBuffersFree) = 0; }; #ifdef __CRT_UUID_DECL __CRT_UUID_DECL(IMemAllocatorCallbackTemp, 0x379a0cf0, 0xc1de, 0x11d2, 0xab,0xf5, 0x00,0xa0,0xc9,0x05,0xf3,0x75) #endif #else typedef struct IMemAllocatorCallbackTempVtbl { BEGIN_INTERFACE /*** 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); END_INTERFACE } IMemAllocatorCallbackTempVtbl; interface IMemAllocatorCallbackTemp { CONST_VTBL IMemAllocatorCallbackTempVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ #define IMemAllocatorCallbackTemp_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IMemAllocatorCallbackTemp_AddRef(This) (This)->lpVtbl->AddRef(This) #define IMemAllocatorCallbackTemp_Release(This) (This)->lpVtbl->Release(This) /*** IMemAllocator methods ***/ #define IMemAllocatorCallbackTemp_SetProperties(This,pRequest,pActual) (This)->lpVtbl->SetProperties(This,pRequest,pActual) #define IMemAllocatorCallbackTemp_GetProperties(This,pProps) (This)->lpVtbl->GetProperties(This,pProps) #define IMemAllocatorCallbackTemp_Commit(This) (This)->lpVtbl->Commit(This) #define IMemAllocatorCallbackTemp_Decommit(This) (This)->lpVtbl->Decommit(This) #define IMemAllocatorCallbackTemp_GetBuffer(This,ppBuffer,pStartTime,pEndTime,dwFlags) (This)->lpVtbl->GetBuffer(This,ppBuffer,pStartTime,pEndTime,dwFlags) #define IMemAllocatorCallbackTemp_ReleaseBuffer(This,pBuffer) (This)->lpVtbl->ReleaseBuffer(This,pBuffer) /*** IMemAllocatorCallbackTemp methods ***/ #define IMemAllocatorCallbackTemp_SetNotify(This,pNotify) (This)->lpVtbl->SetNotify(This,pNotify) #define IMemAllocatorCallbackTemp_GetFreeCount(This,plBuffersFree) (This)->lpVtbl->GetFreeCount(This,plBuffersFree) #else /*** IUnknown methods ***/ static inline HRESULT IMemAllocatorCallbackTemp_QueryInterface(IMemAllocatorCallbackTemp* This,REFIID riid,void **ppvObject) { return This->lpVtbl->QueryInterface(This,riid,ppvObject); } static inline ULONG IMemAllocatorCallbackTemp_AddRef(IMemAllocatorCallbackTemp* This) { return This->lpVtbl->AddRef(This); } static inline ULONG IMemAllocatorCallbackTemp_Release(IMemAllocatorCallbackTemp* This) { return This->lpVtbl->Release(This); } /*** IMemAllocator methods ***/ static inline HRESULT IMemAllocatorCallbackTemp_SetProperties(IMemAllocatorCallbackTemp* This,ALLOCATOR_PROPERTIES *pRequest,ALLOCATOR_PROPERTIES *pActual) { return This->lpVtbl->SetProperties(This,pRequest,pActual); } static inline HRESULT IMemAllocatorCallbackTemp_GetProperties(IMemAllocatorCallbackTemp* This,ALLOCATOR_PROPERTIES *pProps) { return This->lpVtbl->GetProperties(This,pProps); } static inline HRESULT IMemAllocatorCallbackTemp_Commit(IMemAllocatorCallbackTemp* This) { return This->lpVtbl->Commit(This); } static inline HRESULT IMemAllocatorCallbackTemp_Decommit(IMemAllocatorCallbackTemp* This) { return This->lpVtbl->Decommit(This); } static inline HRESULT IMemAllocatorCallbackTemp_GetBuffer(IMemAllocatorCallbackTemp* This,IMediaSample **ppBuffer,REFERENCE_TIME *pStartTime,REFERENCE_TIME *pEndTime,DWORD dwFlags) { return This->lpVtbl->GetBuffer(This,ppBuffer,pStartTime,pEndTime,dwFlags); } static inline HRESULT IMemAllocatorCallbackTemp_ReleaseBuffer(IMemAllocatorCallbackTemp* This,IMediaSample *pBuffer) { return This->lpVtbl->ReleaseBuffer(This,pBuffer); } /*** IMemAllocatorCallbackTemp methods ***/ static inline HRESULT IMemAllocatorCallbackTemp_SetNotify(IMemAllocatorCallbackTemp* This,IMemAllocatorNotifyCallbackTemp *pNotify) { return This->lpVtbl->SetNotify(This,pNotify); } static inline HRESULT IMemAllocatorCallbackTemp_GetFreeCount(IMemAllocatorCallbackTemp* This,LONG *plBuffersFree) { return This->lpVtbl->GetFreeCount(This,plBuffersFree); } #endif #endif #endif #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) MIDL_INTERFACE("92980b30-c1de-11d2-abf5-00a0c905f375") IMemAllocatorNotifyCallbackTemp : public IUnknown { virtual HRESULT STDMETHODCALLTYPE NotifyRelease( ) = 0; }; #ifdef __CRT_UUID_DECL __CRT_UUID_DECL(IMemAllocatorNotifyCallbackTemp, 0x92980b30, 0xc1de, 0x11d2, 0xab,0xf5, 0x00,0xa0,0xc9,0x05,0xf3,0x75) #endif #else typedef struct IMemAllocatorNotifyCallbackTempVtbl { BEGIN_INTERFACE /*** 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); END_INTERFACE } IMemAllocatorNotifyCallbackTempVtbl; interface IMemAllocatorNotifyCallbackTemp { CONST_VTBL IMemAllocatorNotifyCallbackTempVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ #define IMemAllocatorNotifyCallbackTemp_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IMemAllocatorNotifyCallbackTemp_AddRef(This) (This)->lpVtbl->AddRef(This) #define IMemAllocatorNotifyCallbackTemp_Release(This) (This)->lpVtbl->Release(This) /*** IMemAllocatorNotifyCallbackTemp methods ***/ #define IMemAllocatorNotifyCallbackTemp_NotifyRelease(This) (This)->lpVtbl->NotifyRelease(This) #else /*** IUnknown methods ***/ static inline HRESULT IMemAllocatorNotifyCallbackTemp_QueryInterface(IMemAllocatorNotifyCallbackTemp* This,REFIID riid,void **ppvObject) { return This->lpVtbl->QueryInterface(This,riid,ppvObject); } static inline ULONG IMemAllocatorNotifyCallbackTemp_AddRef(IMemAllocatorNotifyCallbackTemp* This) { return This->lpVtbl->AddRef(This); } static inline ULONG IMemAllocatorNotifyCallbackTemp_Release(IMemAllocatorNotifyCallbackTemp* This) { return This->lpVtbl->Release(This); } /*** IMemAllocatorNotifyCallbackTemp methods ***/ static inline HRESULT IMemAllocatorNotifyCallbackTemp_NotifyRelease(IMemAllocatorNotifyCallbackTemp* This) { return This->lpVtbl->NotifyRelease(This); } #endif #endif #endif #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) MIDL_INTERFACE("56a8689d-0ad4-11ce-b03a-0020af0ba770") 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; }; #ifdef __CRT_UUID_DECL __CRT_UUID_DECL(IMemInputPin, 0x56a8689d, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70) #endif #else typedef struct IMemInputPinVtbl { BEGIN_INTERFACE /*** 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); END_INTERFACE } IMemInputPinVtbl; interface IMemInputPin { CONST_VTBL IMemInputPinVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ #define IMemInputPin_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IMemInputPin_AddRef(This) (This)->lpVtbl->AddRef(This) #define IMemInputPin_Release(This) (This)->lpVtbl->Release(This) /*** IMemInputPin methods ***/ #define IMemInputPin_GetAllocator(This,ppAllocator) (This)->lpVtbl->GetAllocator(This,ppAllocator) #define IMemInputPin_NotifyAllocator(This,pAllocator,bReadOnly) (This)->lpVtbl->NotifyAllocator(This,pAllocator,bReadOnly) #define IMemInputPin_GetAllocatorRequirements(This,pProps) (This)->lpVtbl->GetAllocatorRequirements(This,pProps) #define IMemInputPin_Receive(This,pSample) (This)->lpVtbl->Receive(This,pSample) #define IMemInputPin_ReceiveMultiple(This,pSamples,nSamples,nSamplesProcessed) (This)->lpVtbl->ReceiveMultiple(This,pSamples,nSamples,nSamplesProcessed) #define IMemInputPin_ReceiveCanBlock(This) (This)->lpVtbl->ReceiveCanBlock(This) #else /*** IUnknown methods ***/ static inline HRESULT IMemInputPin_QueryInterface(IMemInputPin* This,REFIID riid,void **ppvObject) { return This->lpVtbl->QueryInterface(This,riid,ppvObject); } static inline ULONG IMemInputPin_AddRef(IMemInputPin* This) { return This->lpVtbl->AddRef(This); } static inline ULONG IMemInputPin_Release(IMemInputPin* This) { return This->lpVtbl->Release(This); } /*** IMemInputPin methods ***/ static inline HRESULT IMemInputPin_GetAllocator(IMemInputPin* This,IMemAllocator **ppAllocator) { return This->lpVtbl->GetAllocator(This,ppAllocator); } static inline HRESULT IMemInputPin_NotifyAllocator(IMemInputPin* This,IMemAllocator *pAllocator,BOOL bReadOnly) { return This->lpVtbl->NotifyAllocator(This,pAllocator,bReadOnly); } static inline HRESULT IMemInputPin_GetAllocatorRequirements(IMemInputPin* This,ALLOCATOR_PROPERTIES *pProps) { return This->lpVtbl->GetAllocatorRequirements(This,pProps); } static inline HRESULT IMemInputPin_Receive(IMemInputPin* This,IMediaSample *pSample) { return This->lpVtbl->Receive(This,pSample); } static inline HRESULT IMemInputPin_ReceiveMultiple(IMemInputPin* This,IMediaSample **pSamples,LONG nSamples,LONG *nSamplesProcessed) { return This->lpVtbl->ReceiveMultiple(This,pSamples,nSamples,nSamplesProcessed); } static inline HRESULT IMemInputPin_ReceiveCanBlock(IMemInputPin* This) { return This->lpVtbl->ReceiveCanBlock(This); } #endif #endif #endif #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) MIDL_INTERFACE("a3d8cec0-7e5a-11cf-bbc5-00805f6cef20") IAMovieSetup : public IUnknown { virtual HRESULT STDMETHODCALLTYPE Register( ) = 0; virtual HRESULT STDMETHODCALLTYPE Unregister( ) = 0; }; #ifdef __CRT_UUID_DECL __CRT_UUID_DECL(IAMovieSetup, 0xa3d8cec0, 0x7e5a, 0x11cf, 0xbb,0xc5, 0x00,0x80,0x5f,0x6c,0xef,0x20) #endif #else typedef struct IAMovieSetupVtbl { BEGIN_INTERFACE /*** 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); END_INTERFACE } IAMovieSetupVtbl; interface IAMovieSetup { CONST_VTBL IAMovieSetupVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ #define IAMovieSetup_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IAMovieSetup_AddRef(This) (This)->lpVtbl->AddRef(This) #define IAMovieSetup_Release(This) (This)->lpVtbl->Release(This) /*** IAMovieSetup methods ***/ #define IAMovieSetup_Register(This) (This)->lpVtbl->Register(This) #define IAMovieSetup_Unregister(This) (This)->lpVtbl->Unregister(This) #else /*** IUnknown methods ***/ static inline HRESULT IAMovieSetup_QueryInterface(IAMovieSetup* This,REFIID riid,void **ppvObject) { return This->lpVtbl->QueryInterface(This,riid,ppvObject); } static inline ULONG IAMovieSetup_AddRef(IAMovieSetup* This) { return This->lpVtbl->AddRef(This); } static inline ULONG IAMovieSetup_Release(IAMovieSetup* This) { return This->lpVtbl->Release(This); } /*** IAMovieSetup methods ***/ static inline HRESULT IAMovieSetup_Register(IAMovieSetup* This) { return This->lpVtbl->Register(This); } static inline HRESULT IAMovieSetup_Unregister(IAMovieSetup* This) { return This->lpVtbl->Unregister(This); } #endif #endif #endif #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; /***************************************************************************** * 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) MIDL_INTERFACE("36b73880-c2c8-11cf-8b46-00805f6cef60") 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; }; #ifdef __CRT_UUID_DECL __CRT_UUID_DECL(IMediaSeeking, 0x36b73880, 0xc2c8, 0x11cf, 0x8b,0x46, 0x00,0x80,0x5f,0x6c,0xef,0x60) #endif #else typedef struct IMediaSeekingVtbl { BEGIN_INTERFACE /*** 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); END_INTERFACE } IMediaSeekingVtbl; interface IMediaSeeking { CONST_VTBL IMediaSeekingVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ #define IMediaSeeking_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IMediaSeeking_AddRef(This) (This)->lpVtbl->AddRef(This) #define IMediaSeeking_Release(This) (This)->lpVtbl->Release(This) /*** IMediaSeeking methods ***/ #define IMediaSeeking_GetCapabilities(This,pCapabilities) (This)->lpVtbl->GetCapabilities(This,pCapabilities) #define IMediaSeeking_CheckCapabilities(This,pCapabilities) (This)->lpVtbl->CheckCapabilities(This,pCapabilities) #define IMediaSeeking_IsFormatSupported(This,pFormat) (This)->lpVtbl->IsFormatSupported(This,pFormat) #define IMediaSeeking_QueryPreferredFormat(This,pFormat) (This)->lpVtbl->QueryPreferredFormat(This,pFormat) #define IMediaSeeking_GetTimeFormat(This,pFormat) (This)->lpVtbl->GetTimeFormat(This,pFormat) #define IMediaSeeking_IsUsingTimeFormat(This,pFormat) (This)->lpVtbl->IsUsingTimeFormat(This,pFormat) #define IMediaSeeking_SetTimeFormat(This,pFormat) (This)->lpVtbl->SetTimeFormat(This,pFormat) #define IMediaSeeking_GetDuration(This,pDuration) (This)->lpVtbl->GetDuration(This,pDuration) #define IMediaSeeking_GetStopPosition(This,pStop) (This)->lpVtbl->GetStopPosition(This,pStop) #define IMediaSeeking_GetCurrentPosition(This,pCurrent) (This)->lpVtbl->GetCurrentPosition(This,pCurrent) #define IMediaSeeking_ConvertTimeFormat(This,pTarget,pTargetFormat,Source,pSourceFormat) (This)->lpVtbl->ConvertTimeFormat(This,pTarget,pTargetFormat,Source,pSourceFormat) #define IMediaSeeking_SetPositions(This,pCurrent,dwCurrentFlags,pStop,dwStopFlags) (This)->lpVtbl->SetPositions(This,pCurrent,dwCurrentFlags,pStop,dwStopFlags) #define IMediaSeeking_GetPositions(This,pCurrent,pStop) (This)->lpVtbl->GetPositions(This,pCurrent,pStop) #define IMediaSeeking_GetAvailable(This,pEarliest,pLatest) (This)->lpVtbl->GetAvailable(This,pEarliest,pLatest) #define IMediaSeeking_SetRate(This,dRate) (This)->lpVtbl->SetRate(This,dRate) #define IMediaSeeking_GetRate(This,pdRate) (This)->lpVtbl->GetRate(This,pdRate) #define IMediaSeeking_GetPreroll(This,pllPreroll) (This)->lpVtbl->GetPreroll(This,pllPreroll) #else /*** IUnknown methods ***/ static inline HRESULT IMediaSeeking_QueryInterface(IMediaSeeking* This,REFIID riid,void **ppvObject) { return This->lpVtbl->QueryInterface(This,riid,ppvObject); } static inline ULONG IMediaSeeking_AddRef(IMediaSeeking* This) { return This->lpVtbl->AddRef(This); } static inline ULONG IMediaSeeking_Release(IMediaSeeking* This) { return This->lpVtbl->Release(This); } /*** IMediaSeeking methods ***/ static inline HRESULT IMediaSeeking_GetCapabilities(IMediaSeeking* This,DWORD *pCapabilities) { return This->lpVtbl->GetCapabilities(This,pCapabilities); } static inline HRESULT IMediaSeeking_CheckCapabilities(IMediaSeeking* This,DWORD *pCapabilities) { return This->lpVtbl->CheckCapabilities(This,pCapabilities); } static inline HRESULT IMediaSeeking_IsFormatSupported(IMediaSeeking* This,const GUID *pFormat) { return This->lpVtbl->IsFormatSupported(This,pFormat); } static inline HRESULT IMediaSeeking_QueryPreferredFormat(IMediaSeeking* This,GUID *pFormat) { return This->lpVtbl->QueryPreferredFormat(This,pFormat); } static inline HRESULT IMediaSeeking_GetTimeFormat(IMediaSeeking* This,GUID *pFormat) { return This->lpVtbl->GetTimeFormat(This,pFormat); } static inline HRESULT IMediaSeeking_IsUsingTimeFormat(IMediaSeeking* This,const GUID *pFormat) { return This->lpVtbl->IsUsingTimeFormat(This,pFormat); } static inline HRESULT IMediaSeeking_SetTimeFormat(IMediaSeeking* This,const GUID *pFormat) { return This->lpVtbl->SetTimeFormat(This,pFormat); } static inline HRESULT IMediaSeeking_GetDuration(IMediaSeeking* This,LONGLONG *pDuration) { return This->lpVtbl->GetDuration(This,pDuration); } static inline HRESULT IMediaSeeking_GetStopPosition(IMediaSeeking* This,LONGLONG *pStop) { return This->lpVtbl->GetStopPosition(This,pStop); } static inline HRESULT IMediaSeeking_GetCurrentPosition(IMediaSeeking* This,LONGLONG *pCurrent) { return This->lpVtbl->GetCurrentPosition(This,pCurrent); } static inline HRESULT IMediaSeeking_ConvertTimeFormat(IMediaSeeking* This,LONGLONG *pTarget,const GUID *pTargetFormat,LONGLONG Source,const GUID *pSourceFormat) { return This->lpVtbl->ConvertTimeFormat(This,pTarget,pTargetFormat,Source,pSourceFormat); } static inline HRESULT IMediaSeeking_SetPositions(IMediaSeeking* This,LONGLONG *pCurrent,DWORD dwCurrentFlags,LONGLONG *pStop,DWORD dwStopFlags) { return This->lpVtbl->SetPositions(This,pCurrent,dwCurrentFlags,pStop,dwStopFlags); } static inline HRESULT IMediaSeeking_GetPositions(IMediaSeeking* This,LONGLONG *pCurrent,LONGLONG *pStop) { return This->lpVtbl->GetPositions(This,pCurrent,pStop); } static inline HRESULT IMediaSeeking_GetAvailable(IMediaSeeking* This,LONGLONG *pEarliest,LONGLONG *pLatest) { return This->lpVtbl->GetAvailable(This,pEarliest,pLatest); } static inline HRESULT IMediaSeeking_SetRate(IMediaSeeking* This,double dRate) { return This->lpVtbl->SetRate(This,dRate); } static inline HRESULT IMediaSeeking_GetRate(IMediaSeeking* This,double *pdRate) { return This->lpVtbl->GetRate(This,pdRate); } static inline HRESULT IMediaSeeking_GetPreroll(IMediaSeeking* This,LONGLONG *pllPreroll) { return This->lpVtbl->GetPreroll(This,pllPreroll); } #endif #endif #endif #endif /* __IMediaSeeking_INTERFACE_DEFINED__ */ typedef IMediaSeeking *PMEDIASEEKING; enum tagAM_MEDIAEVENT_FLAGS { AM_MEDIAEVENT_NONOTIFY = 0x1 }; enum _AMSTREAMSELECTINFOFLAGS { AMSTREAMSELECTINFO_ENABLED = 0x1, AMSTREAMSELECTINFO_EXCLUSIVE = 0x2 }; enum _AMSTREAMSELECTENABLEFLAGS { AMSTREAMSELECTENABLE_ENABLE = 0x1, AMSTREAMSELECTENABLE_ENABLEALL = 0x2 }; /***************************************************************************** * IAMStreamSelect interface */ #ifndef __IAMStreamSelect_INTERFACE_DEFINED__ #define __IAMStreamSelect_INTERFACE_DEFINED__ DEFINE_GUID(IID_IAMStreamSelect, 0xc1960960, 0x17f5, 0x11d1, 0xab,0xe1, 0x00,0xa0,0xc9,0x05,0xf3,0x75); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("c1960960-17f5-11d1-abe1-00a0c905f375") IAMStreamSelect : public IUnknown { virtual HRESULT STDMETHODCALLTYPE Count( DWORD *streams) = 0; virtual HRESULT STDMETHODCALLTYPE Info( LONG index, AM_MEDIA_TYPE **media_type, DWORD *flags, LCID *lcid, DWORD *group, WCHAR **name, IUnknown **object, IUnknown **unknown) = 0; virtual HRESULT STDMETHODCALLTYPE Enable( LONG index, DWORD flags) = 0; }; #ifdef __CRT_UUID_DECL __CRT_UUID_DECL(IAMStreamSelect, 0xc1960960, 0x17f5, 0x11d1, 0xab,0xe1, 0x00,0xa0,0xc9,0x05,0xf3,0x75) #endif #else typedef struct IAMStreamSelectVtbl { BEGIN_INTERFACE /*** IUnknown methods ***/ HRESULT (STDMETHODCALLTYPE *QueryInterface)( IAMStreamSelect *This, REFIID riid, void **ppvObject); ULONG (STDMETHODCALLTYPE *AddRef)( IAMStreamSelect *This); ULONG (STDMETHODCALLTYPE *Release)( IAMStreamSelect *This); /*** IAMStreamSelect methods ***/ HRESULT (STDMETHODCALLTYPE *Count)( IAMStreamSelect *This, DWORD *streams); HRESULT (STDMETHODCALLTYPE *Info)( IAMStreamSelect *This, LONG index, AM_MEDIA_TYPE **media_type, DWORD *flags, LCID *lcid, DWORD *group, WCHAR **name, IUnknown **object, IUnknown **unknown); HRESULT (STDMETHODCALLTYPE *Enable)( IAMStreamSelect *This, LONG index, DWORD flags); END_INTERFACE } IAMStreamSelectVtbl; interface IAMStreamSelect { CONST_VTBL IAMStreamSelectVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ #define IAMStreamSelect_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IAMStreamSelect_AddRef(This) (This)->lpVtbl->AddRef(This) #define IAMStreamSelect_Release(This) (This)->lpVtbl->Release(This) /*** IAMStreamSelect methods ***/ #define IAMStreamSelect_Count(This,streams) (This)->lpVtbl->Count(This,streams) #define IAMStreamSelect_Info(This,index,media_type,flags,lcid,group,name,object,unknown) (This)->lpVtbl->Info(This,index,media_type,flags,lcid,group,name,object,unknown) #define IAMStreamSelect_Enable(This,index,flags) (This)->lpVtbl->Enable(This,index,flags) #else /*** IUnknown methods ***/ static inline HRESULT IAMStreamSelect_QueryInterface(IAMStreamSelect* This,REFIID riid,void **ppvObject) { return This->lpVtbl->QueryInterface(This,riid,ppvObject); } static inline ULONG IAMStreamSelect_AddRef(IAMStreamSelect* This) { return This->lpVtbl->AddRef(This); } static inline ULONG IAMStreamSelect_Release(IAMStreamSelect* This) { return This->lpVtbl->Release(This); } /*** IAMStreamSelect methods ***/ static inline HRESULT IAMStreamSelect_Count(IAMStreamSelect* This,DWORD *streams) { return This->lpVtbl->Count(This,streams); } static inline HRESULT IAMStreamSelect_Info(IAMStreamSelect* This,LONG index,AM_MEDIA_TYPE **media_type,DWORD *flags,LCID *lcid,DWORD *group,WCHAR **name,IUnknown **object,IUnknown **unknown) { return This->lpVtbl->Info(This,index,media_type,flags,lcid,group,name,object,unknown); } static inline HRESULT IAMStreamSelect_Enable(IAMStreamSelect* This,LONG index,DWORD flags) { return This->lpVtbl->Enable(This,index,flags); } #endif #endif #endif #endif /* __IAMStreamSelect_INTERFACE_DEFINED__ */ typedef IAMStreamSelect *PAMSTREAMSELECT; typedef enum tagTunerInputType { TunerInputCable = 0, TunerInputAntenna = 1 } TunerInputType; #ifndef __IAMAnalogVideoDecoder_FWD_DEFINED__ #define __IAMAnalogVideoDecoder_FWD_DEFINED__ typedef interface IAMAnalogVideoDecoder IAMAnalogVideoDecoder; #ifdef __cplusplus interface IAMAnalogVideoDecoder; #endif /* __cplusplus */ #endif #ifndef __IAMAnalogVideoEncoder_FWD_DEFINED__ #define __IAMAnalogVideoEncoder_FWD_DEFINED__ typedef interface IAMAnalogVideoEncoder IAMAnalogVideoEncoder; #ifdef __cplusplus interface IAMAnalogVideoEncoder; #endif /* __cplusplus */ #endif #ifndef __IAMAudioInputMixer_FWD_DEFINED__ #define __IAMAudioInputMixer_FWD_DEFINED__ typedef interface IAMAudioInputMixer IAMAudioInputMixer; #ifdef __cplusplus interface IAMAudioInputMixer; #endif /* __cplusplus */ #endif #ifndef __IAMAudioRendererStats_FWD_DEFINED__ #define __IAMAudioRendererStats_FWD_DEFINED__ typedef interface IAMAudioRendererStats IAMAudioRendererStats; #ifdef __cplusplus interface IAMAudioRendererStats; #endif /* __cplusplus */ #endif #ifndef __IAMBufferNegotiation_FWD_DEFINED__ #define __IAMBufferNegotiation_FWD_DEFINED__ typedef interface IAMBufferNegotiation IAMBufferNegotiation; #ifdef __cplusplus interface IAMBufferNegotiation; #endif /* __cplusplus */ #endif #ifndef __IAMCameraControl_FWD_DEFINED__ #define __IAMCameraControl_FWD_DEFINED__ typedef interface IAMCameraControl IAMCameraControl; #ifdef __cplusplus interface IAMCameraControl; #endif /* __cplusplus */ #endif #ifndef __IAMCertifiedOutputProtection_FWD_DEFINED__ #define __IAMCertifiedOutputProtection_FWD_DEFINED__ typedef interface IAMCertifiedOutputProtection IAMCertifiedOutputProtection; #ifdef __cplusplus interface IAMCertifiedOutputProtection; #endif /* __cplusplus */ #endif #ifndef __IAMClockSlave_FWD_DEFINED__ #define __IAMClockSlave_FWD_DEFINED__ typedef interface IAMClockSlave IAMClockSlave; #ifdef __cplusplus interface IAMClockSlave; #endif /* __cplusplus */ #endif #ifndef __IAMCopyCaptureFileProgress_FWD_DEFINED__ #define __IAMCopyCaptureFileProgress_FWD_DEFINED__ typedef interface IAMCopyCaptureFileProgress IAMCopyCaptureFileProgress; #ifdef __cplusplus interface IAMCopyCaptureFileProgress; #endif /* __cplusplus */ #endif #ifndef __IAMCrossbar_FWD_DEFINED__ #define __IAMCrossbar_FWD_DEFINED__ typedef interface IAMCrossbar IAMCrossbar; #ifdef __cplusplus interface IAMCrossbar; #endif /* __cplusplus */ #endif #ifndef __IAMDevMemoryAllocator_FWD_DEFINED__ #define __IAMDevMemoryAllocator_FWD_DEFINED__ typedef interface IAMDevMemoryAllocator IAMDevMemoryAllocator; #ifdef __cplusplus interface IAMDevMemoryAllocator; #endif /* __cplusplus */ #endif #ifndef __IAMDevMemoryControl_FWD_DEFINED__ #define __IAMDevMemoryControl_FWD_DEFINED__ typedef interface IAMDevMemoryControl IAMDevMemoryControl; #ifdef __cplusplus interface IAMDevMemoryControl; #endif /* __cplusplus */ #endif #ifndef __IAMDroppedFrames_FWD_DEFINED__ #define __IAMDroppedFrames_FWD_DEFINED__ typedef interface IAMDroppedFrames IAMDroppedFrames; #ifdef __cplusplus interface IAMDroppedFrames; #endif /* __cplusplus */ #endif #ifndef __IAMExtDevice_FWD_DEFINED__ #define __IAMExtDevice_FWD_DEFINED__ typedef interface IAMExtDevice IAMExtDevice; #ifdef __cplusplus interface IAMExtDevice; #endif /* __cplusplus */ #endif #ifndef __IAMExtTransport_FWD_DEFINED__ #define __IAMExtTransport_FWD_DEFINED__ typedef interface IAMExtTransport IAMExtTransport; #ifdef __cplusplus interface IAMExtTransport; #endif /* __cplusplus */ #endif #ifndef __IAMGraphStreams_FWD_DEFINED__ #define __IAMGraphStreams_FWD_DEFINED__ typedef interface IAMGraphStreams IAMGraphStreams; #ifdef __cplusplus interface IAMGraphStreams; #endif /* __cplusplus */ #endif #ifndef __IAMLatency_FWD_DEFINED__ #define __IAMLatency_FWD_DEFINED__ typedef interface IAMLatency IAMLatency; #ifdef __cplusplus interface IAMLatency; #endif /* __cplusplus */ #endif #ifndef __IAMOpenProgress_FWD_DEFINED__ #define __IAMOpenProgress_FWD_DEFINED__ typedef interface IAMOpenProgress IAMOpenProgress; #ifdef __cplusplus interface IAMOpenProgress; #endif /* __cplusplus */ #endif #ifndef __IAMOverlayFX_FWD_DEFINED__ #define __IAMOverlayFX_FWD_DEFINED__ typedef interface IAMOverlayFX IAMOverlayFX; #ifdef __cplusplus interface IAMOverlayFX; #endif /* __cplusplus */ #endif #ifndef __IAMPhysicalPinInfo_FWD_DEFINED__ #define __IAMPhysicalPinInfo_FWD_DEFINED__ typedef interface IAMPhysicalPinInfo IAMPhysicalPinInfo; #ifdef __cplusplus interface IAMPhysicalPinInfo; #endif /* __cplusplus */ #endif #ifndef __IAMPushSource_FWD_DEFINED__ #define __IAMPushSource_FWD_DEFINED__ typedef interface IAMPushSource IAMPushSource; #ifdef __cplusplus interface IAMPushSource; #endif /* __cplusplus */ #endif #ifndef __IAMStreamConfig_FWD_DEFINED__ #define __IAMStreamConfig_FWD_DEFINED__ typedef interface IAMStreamConfig IAMStreamConfig; #ifdef __cplusplus interface IAMStreamConfig; #endif /* __cplusplus */ #endif #ifndef __IAMTimecodeDisplay_FWD_DEFINED__ #define __IAMTimecodeDisplay_FWD_DEFINED__ typedef interface IAMTimecodeDisplay IAMTimecodeDisplay; #ifdef __cplusplus interface IAMTimecodeDisplay; #endif /* __cplusplus */ #endif #ifndef __IAMTimecodeGenerator_FWD_DEFINED__ #define __IAMTimecodeGenerator_FWD_DEFINED__ typedef interface IAMTimecodeGenerator IAMTimecodeGenerator; #ifdef __cplusplus interface IAMTimecodeGenerator; #endif /* __cplusplus */ #endif #ifndef __IAMTimecodeReader_FWD_DEFINED__ #define __IAMTimecodeReader_FWD_DEFINED__ typedef interface IAMTimecodeReader IAMTimecodeReader; #ifdef __cplusplus interface IAMTimecodeReader; #endif /* __cplusplus */ #endif #ifndef __IAMTVTuner_FWD_DEFINED__ #define __IAMTVTuner_FWD_DEFINED__ typedef interface IAMTVTuner IAMTVTuner; #ifdef __cplusplus interface IAMTVTuner; #endif /* __cplusplus */ #endif #ifndef __IAMVfwCaptureDialogs_FWD_DEFINED__ #define __IAMVfwCaptureDialogs_FWD_DEFINED__ typedef interface IAMVfwCaptureDialogs IAMVfwCaptureDialogs; #ifdef __cplusplus interface IAMVfwCaptureDialogs; #endif /* __cplusplus */ #endif #ifndef __IAMVfwCompressDialogs_FWD_DEFINED__ #define __IAMVfwCompressDialogs_FWD_DEFINED__ typedef interface IAMVfwCompressDialogs IAMVfwCompressDialogs; #ifdef __cplusplus interface IAMVfwCompressDialogs; #endif /* __cplusplus */ #endif #ifndef __IAMVideoCompression_FWD_DEFINED__ #define __IAMVideoCompression_FWD_DEFINED__ typedef interface IAMVideoCompression IAMVideoCompression; #ifdef __cplusplus interface IAMVideoCompression; #endif /* __cplusplus */ #endif #ifndef __IAMVideoDecimationProperties_FWD_DEFINED__ #define __IAMVideoDecimationProperties_FWD_DEFINED__ typedef interface IAMVideoDecimationProperties IAMVideoDecimationProperties; #ifdef __cplusplus interface IAMVideoDecimationProperties; #endif /* __cplusplus */ #endif #ifndef __IAMVideoProcAmp_FWD_DEFINED__ #define __IAMVideoProcAmp_FWD_DEFINED__ typedef interface IAMVideoProcAmp IAMVideoProcAmp; #ifdef __cplusplus interface IAMVideoProcAmp; #endif /* __cplusplus */ #endif #ifndef __IAMGraphBuilderCallback_FWD_DEFINED__ #define __IAMGraphBuilderCallback_FWD_DEFINED__ typedef interface IAMGraphBuilderCallback IAMGraphBuilderCallback; #ifdef __cplusplus interface IAMGraphBuilderCallback; #endif /* __cplusplus */ #endif #ifndef __ICaptureGraphBuilder_FWD_DEFINED__ #define __ICaptureGraphBuilder_FWD_DEFINED__ typedef interface ICaptureGraphBuilder ICaptureGraphBuilder; #ifdef __cplusplus interface ICaptureGraphBuilder; #endif /* __cplusplus */ #endif #ifndef __ICaptureGraphBuilder2_FWD_DEFINED__ #define __ICaptureGraphBuilder2_FWD_DEFINED__ typedef interface ICaptureGraphBuilder2 ICaptureGraphBuilder2; #ifdef __cplusplus interface ICaptureGraphBuilder2; #endif /* __cplusplus */ #endif #ifndef __IConfigAviMux_FWD_DEFINED__ #define __IConfigAviMux_FWD_DEFINED__ typedef interface IConfigAviMux IConfigAviMux; #ifdef __cplusplus interface IConfigAviMux; #endif /* __cplusplus */ #endif #ifndef __IConfigInterleaving_FWD_DEFINED__ #define __IConfigInterleaving_FWD_DEFINED__ typedef interface IConfigInterleaving IConfigInterleaving; #ifdef __cplusplus interface IConfigInterleaving; #endif /* __cplusplus */ #endif #ifndef __IDecimateVideoImage_FWD_DEFINED__ #define __IDecimateVideoImage_FWD_DEFINED__ typedef interface IDecimateVideoImage IDecimateVideoImage; #ifdef __cplusplus interface IDecimateVideoImage; #endif /* __cplusplus */ #endif #ifndef __IDrawVideoImage_FWD_DEFINED__ #define __IDrawVideoImage_FWD_DEFINED__ typedef interface IDrawVideoImage IDrawVideoImage; #ifdef __cplusplus interface IDrawVideoImage; #endif /* __cplusplus */ #endif #ifndef __IEnumRegFilters_FWD_DEFINED__ #define __IEnumRegFilters_FWD_DEFINED__ typedef interface IEnumRegFilters IEnumRegFilters; #ifdef __cplusplus interface IEnumRegFilters; #endif /* __cplusplus */ #endif #ifndef __IEnumStreamIdMap_FWD_DEFINED__ #define __IEnumStreamIdMap_FWD_DEFINED__ typedef interface IEnumStreamIdMap IEnumStreamIdMap; #ifdef __cplusplus interface IEnumStreamIdMap; #endif /* __cplusplus */ #endif #ifndef __IFileSourceFilter_FWD_DEFINED__ #define __IFileSourceFilter_FWD_DEFINED__ typedef interface IFileSourceFilter IFileSourceFilter; #ifdef __cplusplus interface IFileSourceFilter; #endif /* __cplusplus */ #endif #ifndef __IFileSinkFilter_FWD_DEFINED__ #define __IFileSinkFilter_FWD_DEFINED__ typedef interface IFileSinkFilter IFileSinkFilter; #ifdef __cplusplus interface IFileSinkFilter; #endif /* __cplusplus */ #endif #ifndef __IFileSinkFilter2_FWD_DEFINED__ #define __IFileSinkFilter2_FWD_DEFINED__ typedef interface IFileSinkFilter2 IFileSinkFilter2; #ifdef __cplusplus interface IFileSinkFilter2; #endif /* __cplusplus */ #endif #ifndef __IFilterMapper_FWD_DEFINED__ #define __IFilterMapper_FWD_DEFINED__ typedef interface IFilterMapper IFilterMapper; #ifdef __cplusplus interface IFilterMapper; #endif /* __cplusplus */ #endif #ifndef __IFilterMapper2_FWD_DEFINED__ #define __IFilterMapper2_FWD_DEFINED__ typedef interface IFilterMapper2 IFilterMapper2; #ifdef __cplusplus interface IFilterMapper2; #endif /* __cplusplus */ #endif #ifndef __IGraphBuilder_FWD_DEFINED__ #define __IGraphBuilder_FWD_DEFINED__ typedef interface IGraphBuilder IGraphBuilder; #ifdef __cplusplus interface IGraphBuilder; #endif /* __cplusplus */ #endif #ifndef __IKsPropertySet_FWD_DEFINED__ #define __IKsPropertySet_FWD_DEFINED__ typedef interface IKsPropertySet IKsPropertySet; #ifdef __cplusplus interface IKsPropertySet; #endif /* __cplusplus */ #endif #ifndef __IMediaEventSink_FWD_DEFINED__ #define __IMediaEventSink_FWD_DEFINED__ typedef interface IMediaEventSink IMediaEventSink; #ifdef __cplusplus interface IMediaEventSink; #endif /* __cplusplus */ #endif #ifndef __IMpeg2Demultiplexer_FWD_DEFINED__ #define __IMpeg2Demultiplexer_FWD_DEFINED__ typedef interface IMpeg2Demultiplexer IMpeg2Demultiplexer; #ifdef __cplusplus interface IMpeg2Demultiplexer; #endif /* __cplusplus */ #endif #ifndef __IMPEG2StreamIdMap_FWD_DEFINED__ #define __IMPEG2StreamIdMap_FWD_DEFINED__ typedef interface IMPEG2StreamIdMap IMPEG2StreamIdMap; #ifdef __cplusplus interface IMPEG2StreamIdMap; #endif /* __cplusplus */ #endif #ifndef __IOverlay_FWD_DEFINED__ #define __IOverlay_FWD_DEFINED__ typedef interface IOverlay IOverlay; #ifdef __cplusplus interface IOverlay; #endif /* __cplusplus */ #endif #ifndef __IOverlayNotify_FWD_DEFINED__ #define __IOverlayNotify_FWD_DEFINED__ typedef interface IOverlayNotify IOverlayNotify; #ifdef __cplusplus interface IOverlayNotify; #endif /* __cplusplus */ #endif #ifndef __IOverlayNotify2_FWD_DEFINED__ #define __IOverlayNotify2_FWD_DEFINED__ typedef interface IOverlayNotify2 IOverlayNotify2; #ifdef __cplusplus interface IOverlayNotify2; #endif /* __cplusplus */ #endif #ifndef __IQualityControl_FWD_DEFINED__ #define __IQualityControl_FWD_DEFINED__ typedef interface IQualityControl IQualityControl; #ifdef __cplusplus interface IQualityControl; #endif /* __cplusplus */ #endif #ifndef __ISeekingPassThru_FWD_DEFINED__ #define __ISeekingPassThru_FWD_DEFINED__ typedef interface ISeekingPassThru ISeekingPassThru; #ifdef __cplusplus interface ISeekingPassThru; #endif /* __cplusplus */ #endif typedef struct __WIDL_strmif_generated_name_0000000E { 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) MIDL_INTERFACE("56a868a4-0ad4-11ce-b03a-0020af0ba770") 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; }; #ifdef __CRT_UUID_DECL __CRT_UUID_DECL(IEnumRegFilters, 0x56a868a4, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70) #endif #else typedef struct IEnumRegFiltersVtbl { BEGIN_INTERFACE /*** 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); END_INTERFACE } IEnumRegFiltersVtbl; interface IEnumRegFilters { CONST_VTBL IEnumRegFiltersVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ #define IEnumRegFilters_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IEnumRegFilters_AddRef(This) (This)->lpVtbl->AddRef(This) #define IEnumRegFilters_Release(This) (This)->lpVtbl->Release(This) /*** IEnumRegFilters methods ***/ #define IEnumRegFilters_Next(This,cFilters,apRegFilter,pcFetched) (This)->lpVtbl->Next(This,cFilters,apRegFilter,pcFetched) #define IEnumRegFilters_Skip(This,cFilters) (This)->lpVtbl->Skip(This,cFilters) #define IEnumRegFilters_Reset(This) (This)->lpVtbl->Reset(This) #define IEnumRegFilters_Clone(This,ppEnum) (This)->lpVtbl->Clone(This,ppEnum) #else /*** IUnknown methods ***/ static inline HRESULT IEnumRegFilters_QueryInterface(IEnumRegFilters* This,REFIID riid,void **ppvObject) { return This->lpVtbl->QueryInterface(This,riid,ppvObject); } static inline ULONG IEnumRegFilters_AddRef(IEnumRegFilters* This) { return This->lpVtbl->AddRef(This); } static inline ULONG IEnumRegFilters_Release(IEnumRegFilters* This) { return This->lpVtbl->Release(This); } /*** IEnumRegFilters methods ***/ static inline HRESULT IEnumRegFilters_Next(IEnumRegFilters* This,ULONG cFilters,REGFILTER **apRegFilter,ULONG *pcFetched) { return This->lpVtbl->Next(This,cFilters,apRegFilter,pcFetched); } static inline HRESULT IEnumRegFilters_Skip(IEnumRegFilters* This,ULONG cFilters) { return This->lpVtbl->Skip(This,cFilters); } static inline HRESULT IEnumRegFilters_Reset(IEnumRegFilters* This) { return This->lpVtbl->Reset(This); } static inline HRESULT IEnumRegFilters_Clone(IEnumRegFilters* This,IEnumRegFilters **ppEnum) { return This->lpVtbl->Clone(This,ppEnum); } #endif #endif #endif #endif /* __IEnumRegFilters_INTERFACE_DEFINED__ */ typedef IEnumRegFilters *PENUMREGFILTERS; /***************************************************************************** * IFilterMapper interface */ #ifndef __IFilterMapper_INTERFACE_DEFINED__ #define __IFilterMapper_INTERFACE_DEFINED__ enum { MERIT_PREFERRED = 0x800000, MERIT_NORMAL = 0x600000, MERIT_UNLIKELY = 0x400000, MERIT_DO_NOT_USE = 0x200000, MERIT_SW_COMPRESSOR = 0x100000, MERIT_HW_COMPRESSOR = 0x100050 }; DEFINE_GUID(IID_IFilterMapper, 0x56a868a3, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("56a868a3-0ad4-11ce-b03a-0020af0ba770") 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 bOutputNeeded, CLSID clsOutMaj, CLSID clsOutSub) = 0; }; #ifdef __CRT_UUID_DECL __CRT_UUID_DECL(IFilterMapper, 0x56a868a3, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70) #endif #else typedef struct IFilterMapperVtbl { BEGIN_INTERFACE /*** 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 bOutputNeeded, CLSID clsOutMaj, CLSID clsOutSub); END_INTERFACE } IFilterMapperVtbl; interface IFilterMapper { CONST_VTBL IFilterMapperVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ #define IFilterMapper_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IFilterMapper_AddRef(This) (This)->lpVtbl->AddRef(This) #define IFilterMapper_Release(This) (This)->lpVtbl->Release(This) /*** IFilterMapper methods ***/ #define IFilterMapper_RegisterFilter(This,clsid,Name,dwMerit) (This)->lpVtbl->RegisterFilter(This,clsid,Name,dwMerit) #define IFilterMapper_RegisterFilterInstance(This,clsid,Name,MRId) (This)->lpVtbl->RegisterFilterInstance(This,clsid,Name,MRId) #define IFilterMapper_RegisterPin(This,Filter,Name,bRendered,bOutput,bZero,bMany,ConnectsToFilter,ConnectsToPin) (This)->lpVtbl->RegisterPin(This,Filter,Name,bRendered,bOutput,bZero,bMany,ConnectsToFilter,ConnectsToPin) #define IFilterMapper_RegisterPinType(This,clsFilter,strName,clsMajorType,clsSubType) (This)->lpVtbl->RegisterPinType(This,clsFilter,strName,clsMajorType,clsSubType) #define IFilterMapper_UnregisterFilter(This,Filter) (This)->lpVtbl->UnregisterFilter(This,Filter) #define IFilterMapper_UnregisterFilterInstance(This,MRId) (This)->lpVtbl->UnregisterFilterInstance(This,MRId) #define IFilterMapper_UnregisterPin(This,Filter,Name) (This)->lpVtbl->UnregisterPin(This,Filter,Name) #define IFilterMapper_EnumMatchingFilters(This,ppEnum,dwMerit,bInputNeeded,clsInMaj,clsInSub,bRender,bOutputNeeded,clsOutMaj,clsOutSub) (This)->lpVtbl->EnumMatchingFilters(This,ppEnum,dwMerit,bInputNeeded,clsInMaj,clsInSub,bRender,bOutputNeeded,clsOutMaj,clsOutSub) #else /*** IUnknown methods ***/ static inline HRESULT IFilterMapper_QueryInterface(IFilterMapper* This,REFIID riid,void **ppvObject) { return This->lpVtbl->QueryInterface(This,riid,ppvObject); } static inline ULONG IFilterMapper_AddRef(IFilterMapper* This) { return This->lpVtbl->AddRef(This); } static inline ULONG IFilterMapper_Release(IFilterMapper* This) { return This->lpVtbl->Release(This); } /*** IFilterMapper methods ***/ static inline HRESULT IFilterMapper_RegisterFilter(IFilterMapper* This,CLSID clsid,LPCWSTR Name,DWORD dwMerit) { return This->lpVtbl->RegisterFilter(This,clsid,Name,dwMerit); } static inline HRESULT IFilterMapper_RegisterFilterInstance(IFilterMapper* This,CLSID clsid,LPCWSTR Name,CLSID *MRId) { return This->lpVtbl->RegisterFilterInstance(This,clsid,Name,MRId); } static inline HRESULT IFilterMapper_RegisterPin(IFilterMapper* This,CLSID Filter,LPCWSTR Name,BOOL bRendered,BOOL bOutput,BOOL bZero,BOOL bMany,CLSID ConnectsToFilter,LPCWSTR ConnectsToPin) { return This->lpVtbl->RegisterPin(This,Filter,Name,bRendered,bOutput,bZero,bMany,ConnectsToFilter,ConnectsToPin); } static inline HRESULT IFilterMapper_RegisterPinType(IFilterMapper* This,CLSID clsFilter,LPCWSTR strName,CLSID clsMajorType,CLSID clsSubType) { return This->lpVtbl->RegisterPinType(This,clsFilter,strName,clsMajorType,clsSubType); } static inline HRESULT IFilterMapper_UnregisterFilter(IFilterMapper* This,CLSID Filter) { return This->lpVtbl->UnregisterFilter(This,Filter); } static inline HRESULT IFilterMapper_UnregisterFilterInstance(IFilterMapper* This,CLSID MRId) { return This->lpVtbl->UnregisterFilterInstance(This,MRId); } static inline HRESULT IFilterMapper_UnregisterPin(IFilterMapper* This,CLSID Filter,LPCWSTR Name) { return This->lpVtbl->UnregisterPin(This,Filter,Name); } static inline HRESULT IFilterMapper_EnumMatchingFilters(IFilterMapper* This,IEnumRegFilters **ppEnum,DWORD dwMerit,BOOL bInputNeeded,CLSID clsInMaj,CLSID clsInSub,BOOL bRender,BOOL bOutputNeeded,CLSID clsOutMaj,CLSID clsOutSub) { return This->lpVtbl->EnumMatchingFilters(This,ppEnum,dwMerit,bInputNeeded,clsInMaj,clsInSub,bRender,bOutputNeeded,clsOutMaj,clsOutSub); } #endif #endif #endif #endif /* __IFilterMapper_INTERFACE_DEFINED__ */ typedef struct __WIDL_strmif_generated_name_0000000F { const CLSID *clsMajorType; const CLSID *clsMinorType; } REGPINTYPES; typedef struct __WIDL_strmif_generated_name_00000010 { LPWSTR strName; BOOL bRendered; BOOL bOutput; BOOL bZero; BOOL bMany; const CLSID *clsConnectsToFilter; const WCHAR *strConnectsToPin; UINT nMediaTypes; const REGPINTYPES *lpMediaType; } REGFILTERPINS; typedef struct __WIDL_strmif_generated_name_00000011 { 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 __WIDL_strmif_generated_name_00000012 { DWORD dwFlags; UINT cInstances; UINT nMediaTypes; const REGPINTYPES *lpMediaType; UINT nMediums; const REGPINMEDIUM *lpMedium; const CLSID *clsPinCategory; } REGFILTERPINS2; typedef struct __WIDL_strmif_generated_name_00000013 { DWORD dwVersion; DWORD dwMerit; __C89_NAMELESS union { __C89_NAMELESS struct { ULONG cPins; const REGFILTERPINS *rgPins; } __C89_NAMELESSSTRUCTNAME1; __C89_NAMELESS struct { ULONG cPins2; const REGFILTERPINS2 *rgPins2; } __C89_NAMELESSSTRUCTNAME2; } __C89_NAMELESSUNIONNAME; } 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) MIDL_INTERFACE("b79bb0b0-33c1-11d1-abe1-00a0c905f375") IFilterMapper2 : public IUnknown { virtual HRESULT STDMETHODCALLTYPE CreateCategory( REFCLSID clsidCategory, DWORD dwCategoryMerit, LPCWSTR Description) = 0; virtual HRESULT STDMETHODCALLTYPE UnregisterFilter( const CLSID *pclsidCategory, LPCOLESTR szInstance, REFCLSID Filter) = 0; virtual HRESULT STDMETHODCALLTYPE RegisterFilter( REFCLSID clsidFilter, LPCWSTR Name, IMoniker **ppMoniker, const CLSID *pclsidCategory, LPCOLESTR 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; }; #ifdef __CRT_UUID_DECL __CRT_UUID_DECL(IFilterMapper2, 0xb79bb0b0, 0x33c1, 0x11d1, 0xab,0xe1, 0x00,0xa0,0xc9,0x05,0xf3,0x75) #endif #else typedef struct IFilterMapper2Vtbl { BEGIN_INTERFACE /*** 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, LPCOLESTR szInstance, REFCLSID Filter); HRESULT (STDMETHODCALLTYPE *RegisterFilter)( IFilterMapper2 *This, REFCLSID clsidFilter, LPCWSTR Name, IMoniker **ppMoniker, const CLSID *pclsidCategory, LPCOLESTR 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); END_INTERFACE } IFilterMapper2Vtbl; interface IFilterMapper2 { CONST_VTBL IFilterMapper2Vtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ #define IFilterMapper2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IFilterMapper2_AddRef(This) (This)->lpVtbl->AddRef(This) #define IFilterMapper2_Release(This) (This)->lpVtbl->Release(This) /*** IFilterMapper2 methods ***/ #define IFilterMapper2_CreateCategory(This,clsidCategory,dwCategoryMerit,Description) (This)->lpVtbl->CreateCategory(This,clsidCategory,dwCategoryMerit,Description) #define IFilterMapper2_UnregisterFilter(This,pclsidCategory,szInstance,Filter) (This)->lpVtbl->UnregisterFilter(This,pclsidCategory,szInstance,Filter) #define IFilterMapper2_RegisterFilter(This,clsidFilter,Name,ppMoniker,pclsidCategory,szInstance,prf2) (This)->lpVtbl->RegisterFilter(This,clsidFilter,Name,ppMoniker,pclsidCategory,szInstance,prf2) #define IFilterMapper2_EnumMatchingFilters(This,ppEnum,dwFlags,bExactMatch,dwMerit,bInputNeeded,cInputTypes,pInputTypes,pMedIn,pPinCategoryIn,bRender,bOutputNeeded,cOutputTypes,pOutputTypes,pMedOut,pPinCategoryOut) (This)->lpVtbl->EnumMatchingFilters(This,ppEnum,dwFlags,bExactMatch,dwMerit,bInputNeeded,cInputTypes,pInputTypes,pMedIn,pPinCategoryIn,bRender,bOutputNeeded,cOutputTypes,pOutputTypes,pMedOut,pPinCategoryOut) #else /*** IUnknown methods ***/ static inline HRESULT IFilterMapper2_QueryInterface(IFilterMapper2* This,REFIID riid,void **ppvObject) { return This->lpVtbl->QueryInterface(This,riid,ppvObject); } static inline ULONG IFilterMapper2_AddRef(IFilterMapper2* This) { return This->lpVtbl->AddRef(This); } static inline ULONG IFilterMapper2_Release(IFilterMapper2* This) { return This->lpVtbl->Release(This); } /*** IFilterMapper2 methods ***/ static inline HRESULT IFilterMapper2_CreateCategory(IFilterMapper2* This,REFCLSID clsidCategory,DWORD dwCategoryMerit,LPCWSTR Description) { return This->lpVtbl->CreateCategory(This,clsidCategory,dwCategoryMerit,Description); } static inline HRESULT IFilterMapper2_UnregisterFilter(IFilterMapper2* This,const CLSID *pclsidCategory,LPCOLESTR szInstance,REFCLSID Filter) { return This->lpVtbl->UnregisterFilter(This,pclsidCategory,szInstance,Filter); } static inline HRESULT IFilterMapper2_RegisterFilter(IFilterMapper2* This,REFCLSID clsidFilter,LPCWSTR Name,IMoniker **ppMoniker,const CLSID *pclsidCategory,LPCOLESTR szInstance,const REGFILTER2 *prf2) { return This->lpVtbl->RegisterFilter(This,clsidFilter,Name,ppMoniker,pclsidCategory,szInstance,prf2); } static inline HRESULT IFilterMapper2_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) { return This->lpVtbl->EnumMatchingFilters(This,ppEnum,dwFlags,bExactMatch,dwMerit,bInputNeeded,cInputTypes,pInputTypes,pMedIn,pPinCategoryIn,bRender,bOutputNeeded,cOutputTypes,pOutputTypes,pMedOut,pPinCategoryOut); } #endif #endif #endif #endif /* __IFilterMapper2_INTERFACE_DEFINED__ */ /***************************************************************************** * 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) MIDL_INTERFACE("b79bb0b1-33c1-11d1-abe1-00a0c905f375") IFilterMapper3 : public IFilterMapper2 { virtual HRESULT STDMETHODCALLTYPE GetICreateDevEnum( ICreateDevEnum **ppEnum) = 0; }; #ifdef __CRT_UUID_DECL __CRT_UUID_DECL(IFilterMapper3, 0xb79bb0b1, 0x33c1, 0x11d1, 0xab,0xe1, 0x00,0xa0,0xc9,0x05,0xf3,0x75) #endif #else typedef struct IFilterMapper3Vtbl { BEGIN_INTERFACE /*** 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, LPCOLESTR szInstance, REFCLSID Filter); HRESULT (STDMETHODCALLTYPE *RegisterFilter)( IFilterMapper3 *This, REFCLSID clsidFilter, LPCWSTR Name, IMoniker **ppMoniker, const CLSID *pclsidCategory, LPCOLESTR 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); END_INTERFACE } IFilterMapper3Vtbl; interface IFilterMapper3 { CONST_VTBL IFilterMapper3Vtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ #define IFilterMapper3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IFilterMapper3_AddRef(This) (This)->lpVtbl->AddRef(This) #define IFilterMapper3_Release(This) (This)->lpVtbl->Release(This) /*** IFilterMapper2 methods ***/ #define IFilterMapper3_CreateCategory(This,clsidCategory,dwCategoryMerit,Description) (This)->lpVtbl->CreateCategory(This,clsidCategory,dwCategoryMerit,Description) #define IFilterMapper3_UnregisterFilter(This,pclsidCategory,szInstance,Filter) (This)->lpVtbl->UnregisterFilter(This,pclsidCategory,szInstance,Filter) #define IFilterMapper3_RegisterFilter(This,clsidFilter,Name,ppMoniker,pclsidCategory,szInstance,prf2) (This)->lpVtbl->RegisterFilter(This,clsidFilter,Name,ppMoniker,pclsidCategory,szInstance,prf2) #define IFilterMapper3_EnumMatchingFilters(This,ppEnum,dwFlags,bExactMatch,dwMerit,bInputNeeded,cInputTypes,pInputTypes,pMedIn,pPinCategoryIn,bRender,bOutputNeeded,cOutputTypes,pOutputTypes,pMedOut,pPinCategoryOut) (This)->lpVtbl->EnumMatchingFilters(This,ppEnum,dwFlags,bExactMatch,dwMerit,bInputNeeded,cInputTypes,pInputTypes,pMedIn,pPinCategoryIn,bRender,bOutputNeeded,cOutputTypes,pOutputTypes,pMedOut,pPinCategoryOut) /*** IFilterMapper3 methods ***/ #define IFilterMapper3_GetICreateDevEnum(This,ppEnum) (This)->lpVtbl->GetICreateDevEnum(This,ppEnum) #else /*** IUnknown methods ***/ static inline HRESULT IFilterMapper3_QueryInterface(IFilterMapper3* This,REFIID riid,void **ppvObject) { return This->lpVtbl->QueryInterface(This,riid,ppvObject); } static inline ULONG IFilterMapper3_AddRef(IFilterMapper3* This) { return This->lpVtbl->AddRef(This); } static inline ULONG IFilterMapper3_Release(IFilterMapper3* This) { return This->lpVtbl->Release(This); } /*** IFilterMapper2 methods ***/ static inline HRESULT IFilterMapper3_CreateCategory(IFilterMapper3* This,REFCLSID clsidCategory,DWORD dwCategoryMerit,LPCWSTR Description) { return This->lpVtbl->CreateCategory(This,clsidCategory,dwCategoryMerit,Description); } static inline HRESULT IFilterMapper3_UnregisterFilter(IFilterMapper3* This,const CLSID *pclsidCategory,LPCOLESTR szInstance,REFCLSID Filter) { return This->lpVtbl->UnregisterFilter(This,pclsidCategory,szInstance,Filter); } static inline HRESULT IFilterMapper3_RegisterFilter(IFilterMapper3* This,REFCLSID clsidFilter,LPCWSTR Name,IMoniker **ppMoniker,const CLSID *pclsidCategory,LPCOLESTR szInstance,const REGFILTER2 *prf2) { return This->lpVtbl->RegisterFilter(This,clsidFilter,Name,ppMoniker,pclsidCategory,szInstance,prf2); } static inline HRESULT IFilterMapper3_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) { return This->lpVtbl->EnumMatchingFilters(This,ppEnum,dwFlags,bExactMatch,dwMerit,bInputNeeded,cInputTypes,pInputTypes,pMedIn,pPinCategoryIn,bRender,bOutputNeeded,cOutputTypes,pOutputTypes,pMedOut,pPinCategoryOut); } /*** IFilterMapper3 methods ***/ static inline HRESULT IFilterMapper3_GetICreateDevEnum(IFilterMapper3* This,ICreateDevEnum **ppEnum) { return This->lpVtbl->GetICreateDevEnum(This,ppEnum); } #endif #endif #endif #endif /* __IFilterMapper3_INTERFACE_DEFINED__ */ typedef enum tagQualityMessageType { Famine = 0, Flood = 1 } 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) MIDL_INTERFACE("56a868a5-0ad4-11ce-b03a-0020af0ba770") IQualityControl : public IUnknown { virtual HRESULT STDMETHODCALLTYPE Notify( IBaseFilter *pSelf, Quality q) = 0; virtual HRESULT STDMETHODCALLTYPE SetSink( IQualityControl *piqc) = 0; }; #ifdef __CRT_UUID_DECL __CRT_UUID_DECL(IQualityControl, 0x56a868a5, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70) #endif #else typedef struct IQualityControlVtbl { BEGIN_INTERFACE /*** 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); END_INTERFACE } IQualityControlVtbl; interface IQualityControl { CONST_VTBL IQualityControlVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ #define IQualityControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IQualityControl_AddRef(This) (This)->lpVtbl->AddRef(This) #define IQualityControl_Release(This) (This)->lpVtbl->Release(This) /*** IQualityControl methods ***/ #define IQualityControl_Notify(This,pSelf,q) (This)->lpVtbl->Notify(This,pSelf,q) #define IQualityControl_SetSink(This,piqc) (This)->lpVtbl->SetSink(This,piqc) #else /*** IUnknown methods ***/ static inline HRESULT IQualityControl_QueryInterface(IQualityControl* This,REFIID riid,void **ppvObject) { return This->lpVtbl->QueryInterface(This,riid,ppvObject); } static inline ULONG IQualityControl_AddRef(IQualityControl* This) { return This->lpVtbl->AddRef(This); } static inline ULONG IQualityControl_Release(IQualityControl* This) { return This->lpVtbl->Release(This); } /*** IQualityControl methods ***/ static inline HRESULT IQualityControl_Notify(IQualityControl* This,IBaseFilter *pSelf,Quality q) { return This->lpVtbl->Notify(This,pSelf,q); } static inline HRESULT IQualityControl_SetSink(IQualityControl* This,IQualityControl *piqc) { return This->lpVtbl->SetSink(This,piqc); } #endif #endif #endif #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) MIDL_INTERFACE("56a868a0-0ad4-11ce-b03a-0020af0ba770") 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; }; #ifdef __CRT_UUID_DECL __CRT_UUID_DECL(IOverlayNotify, 0x56a868a0, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70) #endif #else typedef struct IOverlayNotifyVtbl { BEGIN_INTERFACE /*** 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); END_INTERFACE } IOverlayNotifyVtbl; interface IOverlayNotify { CONST_VTBL IOverlayNotifyVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ #define IOverlayNotify_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IOverlayNotify_AddRef(This) (This)->lpVtbl->AddRef(This) #define IOverlayNotify_Release(This) (This)->lpVtbl->Release(This) /*** IOverlayNotify methods ***/ #define IOverlayNotify_OnPaletteChange(This,dwColors,pPalette) (This)->lpVtbl->OnPaletteChange(This,dwColors,pPalette) #define IOverlayNotify_OnClipChange(This,pSourceRect,pDestinationRect,pRgnData) (This)->lpVtbl->OnClipChange(This,pSourceRect,pDestinationRect,pRgnData) #define IOverlayNotify_OnColorKeyChange(This,pColorKey) (This)->lpVtbl->OnColorKeyChange(This,pColorKey) #define IOverlayNotify_OnPositionChange(This,pSourceRect,pDestinationRect) (This)->lpVtbl->OnPositionChange(This,pSourceRect,pDestinationRect) #else /*** IUnknown methods ***/ static inline HRESULT IOverlayNotify_QueryInterface(IOverlayNotify* This,REFIID riid,void **ppvObject) { return This->lpVtbl->QueryInterface(This,riid,ppvObject); } static inline ULONG IOverlayNotify_AddRef(IOverlayNotify* This) { return This->lpVtbl->AddRef(This); } static inline ULONG IOverlayNotify_Release(IOverlayNotify* This) { return This->lpVtbl->Release(This); } /*** IOverlayNotify methods ***/ static inline HRESULT IOverlayNotify_OnPaletteChange(IOverlayNotify* This,DWORD dwColors,const PALETTEENTRY *pPalette) { return This->lpVtbl->OnPaletteChange(This,dwColors,pPalette); } static inline HRESULT IOverlayNotify_OnClipChange(IOverlayNotify* This,const RECT *pSourceRect,const RECT *pDestinationRect,const RGNDATA *pRgnData) { return This->lpVtbl->OnClipChange(This,pSourceRect,pDestinationRect,pRgnData); } static inline HRESULT IOverlayNotify_OnColorKeyChange(IOverlayNotify* This,const COLORKEY *pColorKey) { return This->lpVtbl->OnColorKeyChange(This,pColorKey); } static inline HRESULT IOverlayNotify_OnPositionChange(IOverlayNotify* This,const RECT *pSourceRect,const RECT *pDestinationRect) { return This->lpVtbl->OnPositionChange(This,pSourceRect,pDestinationRect); } #endif #endif #endif #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) MIDL_INTERFACE("680efa10-d535-11d1-87c8-00a0c9223196") IOverlayNotify2 : public IOverlayNotify { virtual HRESULT STDMETHODCALLTYPE OnDisplayChange( HMONITOR hMonitor) = 0; }; #ifdef __CRT_UUID_DECL __CRT_UUID_DECL(IOverlayNotify2, 0x680efa10, 0xd535, 0x11d1, 0x87,0xc8, 0x00,0xa0,0xc9,0x22,0x31,0x96) #endif #else typedef struct IOverlayNotify2Vtbl { BEGIN_INTERFACE /*** 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); END_INTERFACE } IOverlayNotify2Vtbl; interface IOverlayNotify2 { CONST_VTBL IOverlayNotify2Vtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ #define IOverlayNotify2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IOverlayNotify2_AddRef(This) (This)->lpVtbl->AddRef(This) #define IOverlayNotify2_Release(This) (This)->lpVtbl->Release(This) /*** IOverlayNotify methods ***/ #define IOverlayNotify2_OnPaletteChange(This,dwColors,pPalette) (This)->lpVtbl->OnPaletteChange(This,dwColors,pPalette) #define IOverlayNotify2_OnClipChange(This,pSourceRect,pDestinationRect,pRgnData) (This)->lpVtbl->OnClipChange(This,pSourceRect,pDestinationRect,pRgnData) #define IOverlayNotify2_OnColorKeyChange(This,pColorKey) (This)->lpVtbl->OnColorKeyChange(This,pColorKey) #define IOverlayNotify2_OnPositionChange(This,pSourceRect,pDestinationRect) (This)->lpVtbl->OnPositionChange(This,pSourceRect,pDestinationRect) /*** IOverlayNotify2 methods ***/ #define IOverlayNotify2_OnDisplayChange(This,hMonitor) (This)->lpVtbl->OnDisplayChange(This,hMonitor) #else /*** IUnknown methods ***/ static inline HRESULT IOverlayNotify2_QueryInterface(IOverlayNotify2* This,REFIID riid,void **ppvObject) { return This->lpVtbl->QueryInterface(This,riid,ppvObject); } static inline ULONG IOverlayNotify2_AddRef(IOverlayNotify2* This) { return This->lpVtbl->AddRef(This); } static inline ULONG IOverlayNotify2_Release(IOverlayNotify2* This) { return This->lpVtbl->Release(This); } /*** IOverlayNotify methods ***/ static inline HRESULT IOverlayNotify2_OnPaletteChange(IOverlayNotify2* This,DWORD dwColors,const PALETTEENTRY *pPalette) { return This->lpVtbl->OnPaletteChange(This,dwColors,pPalette); } static inline HRESULT IOverlayNotify2_OnClipChange(IOverlayNotify2* This,const RECT *pSourceRect,const RECT *pDestinationRect,const RGNDATA *pRgnData) { return This->lpVtbl->OnClipChange(This,pSourceRect,pDestinationRect,pRgnData); } static inline HRESULT IOverlayNotify2_OnColorKeyChange(IOverlayNotify2* This,const COLORKEY *pColorKey) { return This->lpVtbl->OnColorKeyChange(This,pColorKey); } static inline HRESULT IOverlayNotify2_OnPositionChange(IOverlayNotify2* This,const RECT *pSourceRect,const RECT *pDestinationRect) { return This->lpVtbl->OnPositionChange(This,pSourceRect,pDestinationRect); } /*** IOverlayNotify2 methods ***/ static inline HRESULT IOverlayNotify2_OnDisplayChange(IOverlayNotify2* This,HMONITOR hMonitor) { return This->lpVtbl->OnDisplayChange(This,hMonitor); } #endif #endif #endif #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) MIDL_INTERFACE("56a868a1-0ad4-11ce-b03a-0020af0ba770") 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; }; #ifdef __CRT_UUID_DECL __CRT_UUID_DECL(IOverlay, 0x56a868a1, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70) #endif #else typedef struct IOverlayVtbl { BEGIN_INTERFACE /*** 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); END_INTERFACE } IOverlayVtbl; interface IOverlay { CONST_VTBL IOverlayVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ #define IOverlay_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IOverlay_AddRef(This) (This)->lpVtbl->AddRef(This) #define IOverlay_Release(This) (This)->lpVtbl->Release(This) /*** IOverlay methods ***/ #define IOverlay_GetPalette(This,pdwColors,ppPalette) (This)->lpVtbl->GetPalette(This,pdwColors,ppPalette) #define IOverlay_SetPalette(This,dwColors,pPalette) (This)->lpVtbl->SetPalette(This,dwColors,pPalette) #define IOverlay_GetDefaultColorKey(This,pColorKey) (This)->lpVtbl->GetDefaultColorKey(This,pColorKey) #define IOverlay_GetColorKey(This,pColorKey) (This)->lpVtbl->GetColorKey(This,pColorKey) #define IOverlay_SetColorKey(This,pColorKey) (This)->lpVtbl->SetColorKey(This,pColorKey) #define IOverlay_GetWindowHandle(This,pHwnd) (This)->lpVtbl->GetWindowHandle(This,pHwnd) #define IOverlay_GetClipList(This,pSourceRect,pDestinationRect,ppRgnData) (This)->lpVtbl->GetClipList(This,pSourceRect,pDestinationRect,ppRgnData) #define IOverlay_GetVideoPosition(This,pSourceRect,pDestinationRect) (This)->lpVtbl->GetVideoPosition(This,pSourceRect,pDestinationRect) #define IOverlay_Advise(This,pOverlayNotify,dwInterests) (This)->lpVtbl->Advise(This,pOverlayNotify,dwInterests) #define IOverlay_Unadvise(This) (This)->lpVtbl->Unadvise(This) #else /*** IUnknown methods ***/ static inline HRESULT IOverlay_QueryInterface(IOverlay* This,REFIID riid,void **ppvObject) { return This->lpVtbl->QueryInterface(This,riid,ppvObject); } static inline ULONG IOverlay_AddRef(IOverlay* This) { return This->lpVtbl->AddRef(This); } static inline ULONG IOverlay_Release(IOverlay* This) { return This->lpVtbl->Release(This); } /*** IOverlay methods ***/ static inline HRESULT IOverlay_GetPalette(IOverlay* This,DWORD *pdwColors,PALETTEENTRY **ppPalette) { return This->lpVtbl->GetPalette(This,pdwColors,ppPalette); } static inline HRESULT IOverlay_SetPalette(IOverlay* This,DWORD dwColors,PALETTEENTRY *pPalette) { return This->lpVtbl->SetPalette(This,dwColors,pPalette); } static inline HRESULT IOverlay_GetDefaultColorKey(IOverlay* This,COLORKEY *pColorKey) { return This->lpVtbl->GetDefaultColorKey(This,pColorKey); } static inline HRESULT IOverlay_GetColorKey(IOverlay* This,COLORKEY *pColorKey) { return This->lpVtbl->GetColorKey(This,pColorKey); } static inline HRESULT IOverlay_SetColorKey(IOverlay* This,COLORKEY *pColorKey) { return This->lpVtbl->SetColorKey(This,pColorKey); } static inline HRESULT IOverlay_GetWindowHandle(IOverlay* This,HWND *pHwnd) { return This->lpVtbl->GetWindowHandle(This,pHwnd); } static inline HRESULT IOverlay_GetClipList(IOverlay* This,RECT *pSourceRect,RECT *pDestinationRect,RGNDATA **ppRgnData) { return This->lpVtbl->GetClipList(This,pSourceRect,pDestinationRect,ppRgnData); } static inline HRESULT IOverlay_GetVideoPosition(IOverlay* This,RECT *pSourceRect,RECT *pDestinationRect) { return This->lpVtbl->GetVideoPosition(This,pSourceRect,pDestinationRect); } static inline HRESULT IOverlay_Advise(IOverlay* This,IOverlayNotify *pOverlayNotify,DWORD dwInterests) { return This->lpVtbl->Advise(This,pOverlayNotify,dwInterests); } static inline HRESULT IOverlay_Unadvise(IOverlay* This) { return This->lpVtbl->Unadvise(This); } #endif #endif #endif #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) MIDL_INTERFACE("56a868a2-0ad4-11ce-b03a-0020af0ba770") IMediaEventSink : public IUnknown { virtual HRESULT STDMETHODCALLTYPE Notify( LONG EventCode, LONG_PTR EventParam1, LONG_PTR EventParam2) = 0; }; #ifdef __CRT_UUID_DECL __CRT_UUID_DECL(IMediaEventSink, 0x56a868a2, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70) #endif #else typedef struct IMediaEventSinkVtbl { BEGIN_INTERFACE /*** 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); END_INTERFACE } IMediaEventSinkVtbl; interface IMediaEventSink { CONST_VTBL IMediaEventSinkVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ #define IMediaEventSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IMediaEventSink_AddRef(This) (This)->lpVtbl->AddRef(This) #define IMediaEventSink_Release(This) (This)->lpVtbl->Release(This) /*** IMediaEventSink methods ***/ #define IMediaEventSink_Notify(This,EventCode,EventParam1,EventParam2) (This)->lpVtbl->Notify(This,EventCode,EventParam1,EventParam2) #else /*** IUnknown methods ***/ static inline HRESULT IMediaEventSink_QueryInterface(IMediaEventSink* This,REFIID riid,void **ppvObject) { return This->lpVtbl->QueryInterface(This,riid,ppvObject); } static inline ULONG IMediaEventSink_AddRef(IMediaEventSink* This) { return This->lpVtbl->AddRef(This); } static inline ULONG IMediaEventSink_Release(IMediaEventSink* This) { return This->lpVtbl->Release(This); } /*** IMediaEventSink methods ***/ static inline HRESULT IMediaEventSink_Notify(IMediaEventSink* This,LONG EventCode,LONG_PTR EventParam1,LONG_PTR EventParam2) { return This->lpVtbl->Notify(This,EventCode,EventParam1,EventParam2); } #endif #endif #endif #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) MIDL_INTERFACE("56a868a6-0ad4-11ce-b03a-0020af0ba770") 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; }; #ifdef __CRT_UUID_DECL __CRT_UUID_DECL(IFileSourceFilter, 0x56a868a6, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70) #endif #else typedef struct IFileSourceFilterVtbl { BEGIN_INTERFACE /*** 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); END_INTERFACE } IFileSourceFilterVtbl; interface IFileSourceFilter { CONST_VTBL IFileSourceFilterVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ #define IFileSourceFilter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IFileSourceFilter_AddRef(This) (This)->lpVtbl->AddRef(This) #define IFileSourceFilter_Release(This) (This)->lpVtbl->Release(This) /*** IFileSourceFilter methods ***/ #define IFileSourceFilter_Load(This,pszFileName,pmt) (This)->lpVtbl->Load(This,pszFileName,pmt) #define IFileSourceFilter_GetCurFile(This,ppszFileName,pmt) (This)->lpVtbl->GetCurFile(This,ppszFileName,pmt) #else /*** IUnknown methods ***/ static inline HRESULT IFileSourceFilter_QueryInterface(IFileSourceFilter* This,REFIID riid,void **ppvObject) { return This->lpVtbl->QueryInterface(This,riid,ppvObject); } static inline ULONG IFileSourceFilter_AddRef(IFileSourceFilter* This) { return This->lpVtbl->AddRef(This); } static inline ULONG IFileSourceFilter_Release(IFileSourceFilter* This) { return This->lpVtbl->Release(This); } /*** IFileSourceFilter methods ***/ static inline HRESULT IFileSourceFilter_Load(IFileSourceFilter* This,LPCOLESTR pszFileName,const AM_MEDIA_TYPE *pmt) { return This->lpVtbl->Load(This,pszFileName,pmt); } static inline HRESULT IFileSourceFilter_GetCurFile(IFileSourceFilter* This,LPOLESTR *ppszFileName,AM_MEDIA_TYPE *pmt) { return This->lpVtbl->GetCurFile(This,ppszFileName,pmt); } #endif #endif #endif #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) MIDL_INTERFACE("a2104830-7c70-11cf-8bce-00aa00a3f1a6") 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; }; #ifdef __CRT_UUID_DECL __CRT_UUID_DECL(IFileSinkFilter, 0xa2104830, 0x7c70, 0x11cf, 0x8b,0xce, 0x00,0xaa,0x00,0xa3,0xf1,0xa6) #endif #else typedef struct IFileSinkFilterVtbl { BEGIN_INTERFACE /*** 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); END_INTERFACE } IFileSinkFilterVtbl; interface IFileSinkFilter { CONST_VTBL IFileSinkFilterVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ #define IFileSinkFilter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IFileSinkFilter_AddRef(This) (This)->lpVtbl->AddRef(This) #define IFileSinkFilter_Release(This) (This)->lpVtbl->Release(This) /*** IFileSinkFilter methods ***/ #define IFileSinkFilter_SetFileName(This,pszFileName,pmt) (This)->lpVtbl->SetFileName(This,pszFileName,pmt) #define IFileSinkFilter_GetCurFile(This,ppszFileName,pmt) (This)->lpVtbl->GetCurFile(This,ppszFileName,pmt) #else /*** IUnknown methods ***/ static inline HRESULT IFileSinkFilter_QueryInterface(IFileSinkFilter* This,REFIID riid,void **ppvObject) { return This->lpVtbl->QueryInterface(This,riid,ppvObject); } static inline ULONG IFileSinkFilter_AddRef(IFileSinkFilter* This) { return This->lpVtbl->AddRef(This); } static inline ULONG IFileSinkFilter_Release(IFileSinkFilter* This) { return This->lpVtbl->Release(This); } /*** IFileSinkFilter methods ***/ static inline HRESULT IFileSinkFilter_SetFileName(IFileSinkFilter* This,LPCOLESTR pszFileName,const AM_MEDIA_TYPE *pmt) { return This->lpVtbl->SetFileName(This,pszFileName,pmt); } static inline HRESULT IFileSinkFilter_GetCurFile(IFileSinkFilter* This,LPOLESTR *ppszFileName,AM_MEDIA_TYPE *pmt) { return This->lpVtbl->GetCurFile(This,ppszFileName,pmt); } #endif #endif #endif #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) MIDL_INTERFACE("00855b90-ce1b-11d0-bd4f-00a0c911ce86") IFileSinkFilter2 : public IFileSinkFilter { virtual HRESULT STDMETHODCALLTYPE SetMode( DWORD dwFlags) = 0; virtual HRESULT STDMETHODCALLTYPE GetMode( DWORD *pdwFlags) = 0; }; #ifdef __CRT_UUID_DECL __CRT_UUID_DECL(IFileSinkFilter2, 0x00855b90, 0xce1b, 0x11d0, 0xbd,0x4f, 0x00,0xa0,0xc9,0x11,0xce,0x86) #endif #else typedef struct IFileSinkFilter2Vtbl { BEGIN_INTERFACE /*** 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); END_INTERFACE } IFileSinkFilter2Vtbl; interface IFileSinkFilter2 { CONST_VTBL IFileSinkFilter2Vtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ #define IFileSinkFilter2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IFileSinkFilter2_AddRef(This) (This)->lpVtbl->AddRef(This) #define IFileSinkFilter2_Release(This) (This)->lpVtbl->Release(This) /*** IFileSinkFilter methods ***/ #define IFileSinkFilter2_SetFileName(This,pszFileName,pmt) (This)->lpVtbl->SetFileName(This,pszFileName,pmt) #define IFileSinkFilter2_GetCurFile(This,ppszFileName,pmt) (This)->lpVtbl->GetCurFile(This,ppszFileName,pmt) /*** IFileSinkFilter2 methods ***/ #define IFileSinkFilter2_SetMode(This,dwFlags) (This)->lpVtbl->SetMode(This,dwFlags) #define IFileSinkFilter2_GetMode(This,pdwFlags) (This)->lpVtbl->GetMode(This,pdwFlags) #else /*** IUnknown methods ***/ static inline HRESULT IFileSinkFilter2_QueryInterface(IFileSinkFilter2* This,REFIID riid,void **ppvObject) { return This->lpVtbl->QueryInterface(This,riid,ppvObject); } static inline ULONG IFileSinkFilter2_AddRef(IFileSinkFilter2* This) { return This->lpVtbl->AddRef(This); } static inline ULONG IFileSinkFilter2_Release(IFileSinkFilter2* This) { return This->lpVtbl->Release(This); } /*** IFileSinkFilter methods ***/ static inline HRESULT IFileSinkFilter2_SetFileName(IFileSinkFilter2* This,LPCOLESTR pszFileName,const AM_MEDIA_TYPE *pmt) { return This->lpVtbl->SetFileName(This,pszFileName,pmt); } static inline HRESULT IFileSinkFilter2_GetCurFile(IFileSinkFilter2* This,LPOLESTR *ppszFileName,AM_MEDIA_TYPE *pmt) { return This->lpVtbl->GetCurFile(This,ppszFileName,pmt); } /*** IFileSinkFilter2 methods ***/ static inline HRESULT IFileSinkFilter2_SetMode(IFileSinkFilter2* This,DWORD dwFlags) { return This->lpVtbl->SetMode(This,dwFlags); } static inline HRESULT IFileSinkFilter2_GetMode(IFileSinkFilter2* This,DWORD *pdwFlags) { return This->lpVtbl->GetMode(This,pdwFlags); } #endif #endif #endif #endif /* __IFileSinkFilter2_INTERFACE_DEFINED__ */ typedef IFileSinkFilter2 *PFILESINKFILTER2; typedef enum __WIDL_strmif_generated_name_00000014 { 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) MIDL_INTERFACE("56a868a9-0ad4-11ce-b03a-0020af0ba770") 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; }; #ifdef __CRT_UUID_DECL __CRT_UUID_DECL(IGraphBuilder, 0x56a868a9, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70) #endif #else typedef struct IGraphBuilderVtbl { BEGIN_INTERFACE /*** 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); END_INTERFACE } IGraphBuilderVtbl; interface IGraphBuilder { CONST_VTBL IGraphBuilderVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ #define IGraphBuilder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IGraphBuilder_AddRef(This) (This)->lpVtbl->AddRef(This) #define IGraphBuilder_Release(This) (This)->lpVtbl->Release(This) /*** IFilterGraph methods ***/ #define IGraphBuilder_AddFilter(This,pFilter,pName) (This)->lpVtbl->AddFilter(This,pFilter,pName) #define IGraphBuilder_RemoveFilter(This,pFilter) (This)->lpVtbl->RemoveFilter(This,pFilter) #define IGraphBuilder_EnumFilters(This,ppEnum) (This)->lpVtbl->EnumFilters(This,ppEnum) #define IGraphBuilder_FindFilterByName(This,pName,ppFilter) (This)->lpVtbl->FindFilterByName(This,pName,ppFilter) #define IGraphBuilder_ConnectDirect(This,ppinOut,ppinIn,pmt) (This)->lpVtbl->ConnectDirect(This,ppinOut,ppinIn,pmt) #define IGraphBuilder_Reconnect(This,ppin) (This)->lpVtbl->Reconnect(This,ppin) #define IGraphBuilder_Disconnect(This,ppin) (This)->lpVtbl->Disconnect(This,ppin) #define IGraphBuilder_SetDefaultSyncSource(This) (This)->lpVtbl->SetDefaultSyncSource(This) /*** IGraphBuilder methods ***/ #define IGraphBuilder_Connect(This,ppinOut,ppinIn) (This)->lpVtbl->Connect(This,ppinOut,ppinIn) #define IGraphBuilder_Render(This,ppinOut) (This)->lpVtbl->Render(This,ppinOut) #define IGraphBuilder_RenderFile(This,lpcwstrFile,lpcwstrPlayList) (This)->lpVtbl->RenderFile(This,lpcwstrFile,lpcwstrPlayList) #define IGraphBuilder_AddSourceFilter(This,lpcwstrFileName,lpcwstrFilterName,ppFilter) (This)->lpVtbl->AddSourceFilter(This,lpcwstrFileName,lpcwstrFilterName,ppFilter) #define IGraphBuilder_SetLogFile(This,hFile) (This)->lpVtbl->SetLogFile(This,hFile) #define IGraphBuilder_Abort(This) (This)->lpVtbl->Abort(This) #define IGraphBuilder_ShouldOperationContinue(This) (This)->lpVtbl->ShouldOperationContinue(This) #else /*** IUnknown methods ***/ static inline HRESULT IGraphBuilder_QueryInterface(IGraphBuilder* This,REFIID riid,void **ppvObject) { return This->lpVtbl->QueryInterface(This,riid,ppvObject); } static inline ULONG IGraphBuilder_AddRef(IGraphBuilder* This) { return This->lpVtbl->AddRef(This); } static inline ULONG IGraphBuilder_Release(IGraphBuilder* This) { return This->lpVtbl->Release(This); } /*** IFilterGraph methods ***/ static inline HRESULT IGraphBuilder_AddFilter(IGraphBuilder* This,IBaseFilter *pFilter,LPCWSTR pName) { return This->lpVtbl->AddFilter(This,pFilter,pName); } static inline HRESULT IGraphBuilder_RemoveFilter(IGraphBuilder* This,IBaseFilter *pFilter) { return This->lpVtbl->RemoveFilter(This,pFilter); } static inline HRESULT IGraphBuilder_EnumFilters(IGraphBuilder* This,IEnumFilters **ppEnum) { return This->lpVtbl->EnumFilters(This,ppEnum); } static inline HRESULT IGraphBuilder_FindFilterByName(IGraphBuilder* This,LPCWSTR pName,IBaseFilter **ppFilter) { return This->lpVtbl->FindFilterByName(This,pName,ppFilter); } static inline HRESULT IGraphBuilder_ConnectDirect(IGraphBuilder* This,IPin *ppinOut,IPin *ppinIn,const AM_MEDIA_TYPE *pmt) { return This->lpVtbl->ConnectDirect(This,ppinOut,ppinIn,pmt); } static inline HRESULT IGraphBuilder_Reconnect(IGraphBuilder* This,IPin *ppin) { return This->lpVtbl->Reconnect(This,ppin); } static inline HRESULT IGraphBuilder_Disconnect(IGraphBuilder* This,IPin *ppin) { return This->lpVtbl->Disconnect(This,ppin); } static inline HRESULT IGraphBuilder_SetDefaultSyncSource(IGraphBuilder* This) { return This->lpVtbl->SetDefaultSyncSource(This); } /*** IGraphBuilder methods ***/ static inline HRESULT IGraphBuilder_Connect(IGraphBuilder* This,IPin *ppinOut,IPin *ppinIn) { return This->lpVtbl->Connect(This,ppinOut,ppinIn); } static inline HRESULT IGraphBuilder_Render(IGraphBuilder* This,IPin *ppinOut) { return This->lpVtbl->Render(This,ppinOut); } static inline HRESULT IGraphBuilder_RenderFile(IGraphBuilder* This,LPCWSTR lpcwstrFile,LPCWSTR lpcwstrPlayList) { return This->lpVtbl->RenderFile(This,lpcwstrFile,lpcwstrPlayList); } static inline HRESULT IGraphBuilder_AddSourceFilter(IGraphBuilder* This,LPCWSTR lpcwstrFileName,LPCWSTR lpcwstrFilterName,IBaseFilter **ppFilter) { return This->lpVtbl->AddSourceFilter(This,lpcwstrFileName,lpcwstrFilterName,ppFilter); } static inline HRESULT IGraphBuilder_SetLogFile(IGraphBuilder* This,DWORD_PTR hFile) { return This->lpVtbl->SetLogFile(This,hFile); } static inline HRESULT IGraphBuilder_Abort(IGraphBuilder* This) { return This->lpVtbl->Abort(This); } static inline HRESULT IGraphBuilder_ShouldOperationContinue(IGraphBuilder* This) { return This->lpVtbl->ShouldOperationContinue(This); } #endif #endif #endif #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) MIDL_INTERFACE("bf87b6e0-8c27-11d0-b3f0-00aa003761c5") 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; }; #ifdef __CRT_UUID_DECL __CRT_UUID_DECL(ICaptureGraphBuilder, 0xbf87b6e0, 0x8c27, 0x11d0, 0xb3,0xf0, 0x00,0xaa,0x00,0x37,0x61,0xc5) #endif #else typedef struct ICaptureGraphBuilderVtbl { BEGIN_INTERFACE /*** 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); END_INTERFACE } ICaptureGraphBuilderVtbl; interface ICaptureGraphBuilder { CONST_VTBL ICaptureGraphBuilderVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ #define ICaptureGraphBuilder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define ICaptureGraphBuilder_AddRef(This) (This)->lpVtbl->AddRef(This) #define ICaptureGraphBuilder_Release(This) (This)->lpVtbl->Release(This) /*** ICaptureGraphBuilder methods ***/ #define ICaptureGraphBuilder_SetFiltergraph(This,pfg) (This)->lpVtbl->SetFiltergraph(This,pfg) #define ICaptureGraphBuilder_GetFiltergraph(This,ppfg) (This)->lpVtbl->GetFiltergraph(This,ppfg) #define ICaptureGraphBuilder_SetOutputFileName(This,pType,lpstrFile,ppf,ppSink) (This)->lpVtbl->SetOutputFileName(This,pType,lpstrFile,ppf,ppSink) #define ICaptureGraphBuilder_FindInterface(This,pCategory,pf,riid,ppint) (This)->lpVtbl->FindInterface(This,pCategory,pf,riid,ppint) #define ICaptureGraphBuilder_RenderStream(This,pCategory,pSource,pfCompressor,pfRenderer) (This)->lpVtbl->RenderStream(This,pCategory,pSource,pfCompressor,pfRenderer) #define ICaptureGraphBuilder_ControlStream(This,pCategory,pFilter,pstart,pstop,wStartCookie,wStopCookie) (This)->lpVtbl->ControlStream(This,pCategory,pFilter,pstart,pstop,wStartCookie,wStopCookie) #define ICaptureGraphBuilder_AllocCapFile(This,lpstr,dwlSize) (This)->lpVtbl->AllocCapFile(This,lpstr,dwlSize) #define ICaptureGraphBuilder_CopyCaptureFile(This,lpwstrOld,lpwstrNew,fAllowEscAbort,pCallback) (This)->lpVtbl->CopyCaptureFile(This,lpwstrOld,lpwstrNew,fAllowEscAbort,pCallback) #else /*** IUnknown methods ***/ static inline HRESULT ICaptureGraphBuilder_QueryInterface(ICaptureGraphBuilder* This,REFIID riid,void **ppvObject) { return This->lpVtbl->QueryInterface(This,riid,ppvObject); } static inline ULONG ICaptureGraphBuilder_AddRef(ICaptureGraphBuilder* This) { return This->lpVtbl->AddRef(This); } static inline ULONG ICaptureGraphBuilder_Release(ICaptureGraphBuilder* This) { return This->lpVtbl->Release(This); } /*** ICaptureGraphBuilder methods ***/ static inline HRESULT ICaptureGraphBuilder_SetFiltergraph(ICaptureGraphBuilder* This,IGraphBuilder *pfg) { return This->lpVtbl->SetFiltergraph(This,pfg); } static inline HRESULT ICaptureGraphBuilder_GetFiltergraph(ICaptureGraphBuilder* This,IGraphBuilder **ppfg) { return This->lpVtbl->GetFiltergraph(This,ppfg); } static inline HRESULT ICaptureGraphBuilder_SetOutputFileName(ICaptureGraphBuilder* This,const GUID *pType,LPCOLESTR lpstrFile,IBaseFilter **ppf,IFileSinkFilter **ppSink) { return This->lpVtbl->SetOutputFileName(This,pType,lpstrFile,ppf,ppSink); } static inline HRESULT ICaptureGraphBuilder_FindInterface(ICaptureGraphBuilder* This,const GUID *pCategory,IBaseFilter *pf,REFIID riid,void **ppint) { return This->lpVtbl->FindInterface(This,pCategory,pf,riid,ppint); } static inline HRESULT ICaptureGraphBuilder_RenderStream(ICaptureGraphBuilder* This,const GUID *pCategory,IUnknown *pSource,IBaseFilter *pfCompressor,IBaseFilter *pfRenderer) { return This->lpVtbl->RenderStream(This,pCategory,pSource,pfCompressor,pfRenderer); } static inline HRESULT ICaptureGraphBuilder_ControlStream(ICaptureGraphBuilder* This,const GUID *pCategory,IBaseFilter *pFilter,REFERENCE_TIME *pstart,REFERENCE_TIME *pstop,WORD wStartCookie,WORD wStopCookie) { return This->lpVtbl->ControlStream(This,pCategory,pFilter,pstart,pstop,wStartCookie,wStopCookie); } static inline HRESULT ICaptureGraphBuilder_AllocCapFile(ICaptureGraphBuilder* This,LPCOLESTR lpstr,DWORDLONG dwlSize) { return This->lpVtbl->AllocCapFile(This,lpstr,dwlSize); } static inline HRESULT ICaptureGraphBuilder_CopyCaptureFile(ICaptureGraphBuilder* This,LPOLESTR lpwstrOld,LPOLESTR lpwstrNew,int fAllowEscAbort,IAMCopyCaptureFileProgress *pCallback) { return This->lpVtbl->CopyCaptureFile(This,lpwstrOld,lpwstrNew,fAllowEscAbort,pCallback); } #endif #endif #endif HRESULT STDMETHODCALLTYPE ICaptureGraphBuilder_RemoteFindInterface_Proxy( ICaptureGraphBuilder* This, const GUID *pCategory, IBaseFilter *pf, REFIID riid, IUnknown **ppint); void __RPC_STUB ICaptureGraphBuilder_RemoteFindInterface_Stub( IRpcStubBuffer* This, IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT 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); #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) MIDL_INTERFACE("670d1d20-a068-11d0-b3f0-00aa003761c5") IAMCopyCaptureFileProgress : public IUnknown { virtual HRESULT STDMETHODCALLTYPE Progress( int iProgress) = 0; }; #ifdef __CRT_UUID_DECL __CRT_UUID_DECL(IAMCopyCaptureFileProgress, 0x670d1d20, 0xa068, 0x11d0, 0xb3,0xf0, 0x00,0xaa,0x00,0x37,0x61,0xc5) #endif #else typedef struct IAMCopyCaptureFileProgressVtbl { BEGIN_INTERFACE /*** 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); END_INTERFACE } IAMCopyCaptureFileProgressVtbl; interface IAMCopyCaptureFileProgress { CONST_VTBL IAMCopyCaptureFileProgressVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ #define IAMCopyCaptureFileProgress_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IAMCopyCaptureFileProgress_AddRef(This) (This)->lpVtbl->AddRef(This) #define IAMCopyCaptureFileProgress_Release(This) (This)->lpVtbl->Release(This) /*** IAMCopyCaptureFileProgress methods ***/ #define IAMCopyCaptureFileProgress_Progress(This,iProgress) (This)->lpVtbl->Progress(This,iProgress) #else /*** IUnknown methods ***/ static inline HRESULT IAMCopyCaptureFileProgress_QueryInterface(IAMCopyCaptureFileProgress* This,REFIID riid,void **ppvObject) { return This->lpVtbl->QueryInterface(This,riid,ppvObject); } static inline ULONG IAMCopyCaptureFileProgress_AddRef(IAMCopyCaptureFileProgress* This) { return This->lpVtbl->AddRef(This); } static inline ULONG IAMCopyCaptureFileProgress_Release(IAMCopyCaptureFileProgress* This) { return This->lpVtbl->Release(This); } /*** IAMCopyCaptureFileProgress methods ***/ static inline HRESULT IAMCopyCaptureFileProgress_Progress(IAMCopyCaptureFileProgress* This,int iProgress) { return This->lpVtbl->Progress(This,iProgress); } #endif #endif #endif #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) MIDL_INTERFACE("93e5a4e0-2d50-11d2-abfa-00a0c9c6e38d") 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; }; #ifdef __CRT_UUID_DECL __CRT_UUID_DECL(ICaptureGraphBuilder2, 0x93e5a4e0, 0x2d50, 0x11d2, 0xab,0xfa, 0x00,0xa0,0xc9,0xc6,0xe3,0x8d) #endif #else typedef struct ICaptureGraphBuilder2Vtbl { BEGIN_INTERFACE /*** 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); END_INTERFACE } ICaptureGraphBuilder2Vtbl; interface ICaptureGraphBuilder2 { CONST_VTBL ICaptureGraphBuilder2Vtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ #define ICaptureGraphBuilder2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define ICaptureGraphBuilder2_AddRef(This) (This)->lpVtbl->AddRef(This) #define ICaptureGraphBuilder2_Release(This) (This)->lpVtbl->Release(This) /*** ICaptureGraphBuilder2 methods ***/ #define ICaptureGraphBuilder2_SetFiltergraph(This,pfg) (This)->lpVtbl->SetFiltergraph(This,pfg) #define ICaptureGraphBuilder2_GetFiltergraph(This,ppfg) (This)->lpVtbl->GetFiltergraph(This,ppfg) #define ICaptureGraphBuilder2_SetOutputFileName(This,pType,lpstrFile,ppf,ppSink) (This)->lpVtbl->SetOutputFileName(This,pType,lpstrFile,ppf,ppSink) #define ICaptureGraphBuilder2_FindInterface(This,pCategory,pType,pf,riid,ppint) (This)->lpVtbl->FindInterface(This,pCategory,pType,pf,riid,ppint) #define ICaptureGraphBuilder2_RenderStream(This,pCategory,pType,pSource,pfCompressor,pfRenderer) (This)->lpVtbl->RenderStream(This,pCategory,pType,pSource,pfCompressor,pfRenderer) #define ICaptureGraphBuilder2_ControlStream(This,pCategory,pType,pFilter,pstart,pstop,wStartCookie,wStopCookie) (This)->lpVtbl->ControlStream(This,pCategory,pType,pFilter,pstart,pstop,wStartCookie,wStopCookie) #define ICaptureGraphBuilder2_AllocCapFile(This,lpstr,dwlSize) (This)->lpVtbl->AllocCapFile(This,lpstr,dwlSize) #define ICaptureGraphBuilder2_CopyCaptureFile(This,lpwstrOld,lpwstrNew,fAllowEscAbort,pCallback) (This)->lpVtbl->CopyCaptureFile(This,lpwstrOld,lpwstrNew,fAllowEscAbort,pCallback) #define ICaptureGraphBuilder2_FindPin(This,pSource,pindir,pCategory,pType,fUnconnected,num,ppPin) (This)->lpVtbl->FindPin(This,pSource,pindir,pCategory,pType,fUnconnected,num,ppPin) #else /*** IUnknown methods ***/ static inline HRESULT ICaptureGraphBuilder2_QueryInterface(ICaptureGraphBuilder2* This,REFIID riid,void **ppvObject) { return This->lpVtbl->QueryInterface(This,riid,ppvObject); } static inline ULONG ICaptureGraphBuilder2_AddRef(ICaptureGraphBuilder2* This) { return This->lpVtbl->AddRef(This); } static inline ULONG ICaptureGraphBuilder2_Release(ICaptureGraphBuilder2* This) { return This->lpVtbl->Release(This); } /*** ICaptureGraphBuilder2 methods ***/ static inline HRESULT ICaptureGraphBuilder2_SetFiltergraph(ICaptureGraphBuilder2* This,IGraphBuilder *pfg) { return This->lpVtbl->SetFiltergraph(This,pfg); } static inline HRESULT ICaptureGraphBuilder2_GetFiltergraph(ICaptureGraphBuilder2* This,IGraphBuilder **ppfg) { return This->lpVtbl->GetFiltergraph(This,ppfg); } static inline HRESULT ICaptureGraphBuilder2_SetOutputFileName(ICaptureGraphBuilder2* This,const GUID *pType,LPCOLESTR lpstrFile,IBaseFilter **ppf,IFileSinkFilter **ppSink) { return This->lpVtbl->SetOutputFileName(This,pType,lpstrFile,ppf,ppSink); } static inline HRESULT ICaptureGraphBuilder2_FindInterface(ICaptureGraphBuilder2* This,const GUID *pCategory,const GUID *pType,IBaseFilter *pf,REFIID riid,void **ppint) { return This->lpVtbl->FindInterface(This,pCategory,pType,pf,riid,ppint); } static inline HRESULT ICaptureGraphBuilder2_RenderStream(ICaptureGraphBuilder2* This,const GUID *pCategory,const GUID *pType,IUnknown *pSource,IBaseFilter *pfCompressor,IBaseFilter *pfRenderer) { return This->lpVtbl->RenderStream(This,pCategory,pType,pSource,pfCompressor,pfRenderer); } static inline HRESULT ICaptureGraphBuilder2_ControlStream(ICaptureGraphBuilder2* This,const GUID *pCategory,const GUID *pType,IBaseFilter *pFilter,REFERENCE_TIME *pstart,REFERENCE_TIME *pstop,WORD wStartCookie,WORD wStopCookie) { return This->lpVtbl->ControlStream(This,pCategory,pType,pFilter,pstart,pstop,wStartCookie,wStopCookie); } static inline HRESULT ICaptureGraphBuilder2_AllocCapFile(ICaptureGraphBuilder2* This,LPCOLESTR lpstr,DWORDLONG dwlSize) { return This->lpVtbl->AllocCapFile(This,lpstr,dwlSize); } static inline HRESULT ICaptureGraphBuilder2_CopyCaptureFile(ICaptureGraphBuilder2* This,LPOLESTR lpwstrOld,LPOLESTR lpwstrNew,int fAllowEscAbort,IAMCopyCaptureFileProgress *pCallback) { return This->lpVtbl->CopyCaptureFile(This,lpwstrOld,lpwstrNew,fAllowEscAbort,pCallback); } static inline HRESULT ICaptureGraphBuilder2_FindPin(ICaptureGraphBuilder2* This,IUnknown *pSource,PIN_DIRECTION pindir,const GUID *pCategory,const GUID *pType,BOOL fUnconnected,int num,IPin **ppPin) { return This->lpVtbl->FindPin(This,pSource,pindir,pCategory,pType,fUnconnected,num,ppPin); } #endif #endif #endif HRESULT STDMETHODCALLTYPE ICaptureGraphBuilder2_RemoteFindInterface_Proxy( ICaptureGraphBuilder2* This, const GUID *pCategory, const GUID *pType, IBaseFilter *pf, REFIID riid, IUnknown **ppint); void __RPC_STUB ICaptureGraphBuilder2_RemoteFindInterface_Stub( IRpcStubBuffer* This, IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase); HRESULT 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); #endif /* __ICaptureGraphBuilder2_INTERFACE_DEFINED__ */ /***************************************************************************** * IConfigAviMux interface */ #ifndef __IConfigAviMux_INTERFACE_DEFINED__ #define __IConfigAviMux_INTERFACE_DEFINED__ DEFINE_GUID(IID_IConfigAviMux, 0x5acd6aa0, 0xf482, 0x11ce, 0x8b,0x67, 0x00,0xaa,0x00,0xa3,0xf1,0xa6); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("5acd6aa0-f482-11ce-8b67-00aa00a3f1a6") IConfigAviMux : public IUnknown { virtual HRESULT STDMETHODCALLTYPE SetMasterStream( LONG iStream) = 0; virtual HRESULT STDMETHODCALLTYPE GetMasterStream( LONG *pStream) = 0; virtual HRESULT STDMETHODCALLTYPE SetOutputCompatibilityIndex( BOOL fOldIndex) = 0; virtual HRESULT STDMETHODCALLTYPE GetOutputCompatibilityIndex( BOOL *pfOldIndex) = 0; }; #ifdef __CRT_UUID_DECL __CRT_UUID_DECL(IConfigAviMux, 0x5acd6aa0, 0xf482, 0x11ce, 0x8b,0x67, 0x00,0xaa,0x00,0xa3,0xf1,0xa6) #endif #else typedef struct IConfigAviMuxVtbl { BEGIN_INTERFACE /*** IUnknown methods ***/ HRESULT (STDMETHODCALLTYPE *QueryInterface)( IConfigAviMux *This, REFIID riid, void **ppvObject); ULONG (STDMETHODCALLTYPE *AddRef)( IConfigAviMux *This); ULONG (STDMETHODCALLTYPE *Release)( IConfigAviMux *This); /*** IConfigAviMux methods ***/ HRESULT (STDMETHODCALLTYPE *SetMasterStream)( IConfigAviMux *This, LONG iStream); HRESULT (STDMETHODCALLTYPE *GetMasterStream)( IConfigAviMux *This, LONG *pStream); HRESULT (STDMETHODCALLTYPE *SetOutputCompatibilityIndex)( IConfigAviMux *This, BOOL fOldIndex); HRESULT (STDMETHODCALLTYPE *GetOutputCompatibilityIndex)( IConfigAviMux *This, BOOL *pfOldIndex); END_INTERFACE } IConfigAviMuxVtbl; interface IConfigAviMux { CONST_VTBL IConfigAviMuxVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ #define IConfigAviMux_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IConfigAviMux_AddRef(This) (This)->lpVtbl->AddRef(This) #define IConfigAviMux_Release(This) (This)->lpVtbl->Release(This) /*** IConfigAviMux methods ***/ #define IConfigAviMux_SetMasterStream(This,iStream) (This)->lpVtbl->SetMasterStream(This,iStream) #define IConfigAviMux_GetMasterStream(This,pStream) (This)->lpVtbl->GetMasterStream(This,pStream) #define IConfigAviMux_SetOutputCompatibilityIndex(This,fOldIndex) (This)->lpVtbl->SetOutputCompatibilityIndex(This,fOldIndex) #define IConfigAviMux_GetOutputCompatibilityIndex(This,pfOldIndex) (This)->lpVtbl->GetOutputCompatibilityIndex(This,pfOldIndex) #else /*** IUnknown methods ***/ static inline HRESULT IConfigAviMux_QueryInterface(IConfigAviMux* This,REFIID riid,void **ppvObject) { return This->lpVtbl->QueryInterface(This,riid,ppvObject); } static inline ULONG IConfigAviMux_AddRef(IConfigAviMux* This) { return This->lpVtbl->AddRef(This); } static inline ULONG IConfigAviMux_Release(IConfigAviMux* This) { return This->lpVtbl->Release(This); } /*** IConfigAviMux methods ***/ static inline HRESULT IConfigAviMux_SetMasterStream(IConfigAviMux* This,LONG iStream) { return This->lpVtbl->SetMasterStream(This,iStream); } static inline HRESULT IConfigAviMux_GetMasterStream(IConfigAviMux* This,LONG *pStream) { return This->lpVtbl->GetMasterStream(This,pStream); } static inline HRESULT IConfigAviMux_SetOutputCompatibilityIndex(IConfigAviMux* This,BOOL fOldIndex) { return This->lpVtbl->SetOutputCompatibilityIndex(This,fOldIndex); } static inline HRESULT IConfigAviMux_GetOutputCompatibilityIndex(IConfigAviMux* This,BOOL *pfOldIndex) { return This->lpVtbl->GetOutputCompatibilityIndex(This,pfOldIndex); } #endif #endif #endif #endif /* __IConfigAviMux_INTERFACE_DEFINED__ */ /***************************************************************************** * IConfigInterleaving interface */ #ifndef __IConfigInterleaving_INTERFACE_DEFINED__ #define __IConfigInterleaving_INTERFACE_DEFINED__ typedef enum InterleavingMode { INTERLEAVE_NONE = 0, INTERLEAVE_CAPTURE = 1, INTERLEAVE_FULL = 2, INTERLEAVE_NONE_BUFFERED = 3 } InterleavingMode; DEFINE_GUID(IID_IConfigInterleaving, 0xbee3d220, 0x157b, 0x11d0, 0xbd,0x23, 0x00,0xa0,0xc9,0x11,0xce,0x86); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("bee3d220-157b-11d0-bd23-00a0c911ce86") IConfigInterleaving : public IUnknown { virtual HRESULT STDMETHODCALLTYPE put_Mode( InterleavingMode mode) = 0; virtual HRESULT STDMETHODCALLTYPE get_Mode( InterleavingMode *pMode) = 0; virtual HRESULT STDMETHODCALLTYPE put_Interleaving( const REFERENCE_TIME *prtInterleave, const REFERENCE_TIME *prtPreroll) = 0; virtual HRESULT STDMETHODCALLTYPE get_Interleaving( REFERENCE_TIME *prtInterleave, REFERENCE_TIME *prtPreroll) = 0; }; #ifdef __CRT_UUID_DECL __CRT_UUID_DECL(IConfigInterleaving, 0xbee3d220, 0x157b, 0x11d0, 0xbd,0x23, 0x00,0xa0,0xc9,0x11,0xce,0x86) #endif #else typedef struct IConfigInterleavingVtbl { BEGIN_INTERFACE /*** IUnknown methods ***/ HRESULT (STDMETHODCALLTYPE *QueryInterface)( IConfigInterleaving *This, REFIID riid, void **ppvObject); ULONG (STDMETHODCALLTYPE *AddRef)( IConfigInterleaving *This); ULONG (STDMETHODCALLTYPE *Release)( IConfigInterleaving *This); /*** IConfigInterleaving methods ***/ HRESULT (STDMETHODCALLTYPE *put_Mode)( IConfigInterleaving *This, InterleavingMode mode); HRESULT (STDMETHODCALLTYPE *get_Mode)( IConfigInterleaving *This, InterleavingMode *pMode); HRESULT (STDMETHODCALLTYPE *put_Interleaving)( IConfigInterleaving *This, const REFERENCE_TIME *prtInterleave, const REFERENCE_TIME *prtPreroll); HRESULT (STDMETHODCALLTYPE *get_Interleaving)( IConfigInterleaving *This, REFERENCE_TIME *prtInterleave, REFERENCE_TIME *prtPreroll); END_INTERFACE } IConfigInterleavingVtbl; interface IConfigInterleaving { CONST_VTBL IConfigInterleavingVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ #define IConfigInterleaving_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IConfigInterleaving_AddRef(This) (This)->lpVtbl->AddRef(This) #define IConfigInterleaving_Release(This) (This)->lpVtbl->Release(This) /*** IConfigInterleaving methods ***/ #define IConfigInterleaving_put_Mode(This,mode) (This)->lpVtbl->put_Mode(This,mode) #define IConfigInterleaving_get_Mode(This,pMode) (This)->lpVtbl->get_Mode(This,pMode) #define IConfigInterleaving_put_Interleaving(This,prtInterleave,prtPreroll) (This)->lpVtbl->put_Interleaving(This,prtInterleave,prtPreroll) #define IConfigInterleaving_get_Interleaving(This,prtInterleave,prtPreroll) (This)->lpVtbl->get_Interleaving(This,prtInterleave,prtPreroll) #else /*** IUnknown methods ***/ static inline HRESULT IConfigInterleaving_QueryInterface(IConfigInterleaving* This,REFIID riid,void **ppvObject) { return This->lpVtbl->QueryInterface(This,riid,ppvObject); } static inline ULONG IConfigInterleaving_AddRef(IConfigInterleaving* This) { return This->lpVtbl->AddRef(This); } static inline ULONG IConfigInterleaving_Release(IConfigInterleaving* This) { return This->lpVtbl->Release(This); } /*** IConfigInterleaving methods ***/ static inline HRESULT IConfigInterleaving_put_Mode(IConfigInterleaving* This,InterleavingMode mode) { return This->lpVtbl->put_Mode(This,mode); } static inline HRESULT IConfigInterleaving_get_Mode(IConfigInterleaving* This,InterleavingMode *pMode) { return This->lpVtbl->get_Mode(This,pMode); } static inline HRESULT IConfigInterleaving_put_Interleaving(IConfigInterleaving* This,const REFERENCE_TIME *prtInterleave,const REFERENCE_TIME *prtPreroll) { return This->lpVtbl->put_Interleaving(This,prtInterleave,prtPreroll); } static inline HRESULT IConfigInterleaving_get_Interleaving(IConfigInterleaving* This,REFERENCE_TIME *prtInterleave,REFERENCE_TIME *prtPreroll) { return This->lpVtbl->get_Interleaving(This,prtInterleave,prtPreroll); } #endif #endif #endif #endif /* __IConfigInterleaving_INTERFACE_DEFINED__ */ /***************************************************************************** * IAMClockSlave interface */ #ifndef __IAMClockSlave_INTERFACE_DEFINED__ #define __IAMClockSlave_INTERFACE_DEFINED__ DEFINE_GUID(IID_IAMClockSlave, 0x9fd52741, 0x176d, 0x4b36, 0x8f,0x51, 0xca,0x8f,0x93,0x32,0x23,0xbe); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("9fd52741-176d-4b36-8f51-ca8f933223be") IAMClockSlave : public IUnknown { virtual HRESULT STDMETHODCALLTYPE SetErrorTolerance( DWORD dwTolerance) = 0; virtual HRESULT STDMETHODCALLTYPE GetErrorTolerance( DWORD *pdwTolerance) = 0; }; #ifdef __CRT_UUID_DECL __CRT_UUID_DECL(IAMClockSlave, 0x9fd52741, 0x176d, 0x4b36, 0x8f,0x51, 0xca,0x8f,0x93,0x32,0x23,0xbe) #endif #else typedef struct IAMClockSlaveVtbl { BEGIN_INTERFACE /*** IUnknown methods ***/ HRESULT (STDMETHODCALLTYPE *QueryInterface)( IAMClockSlave *This, REFIID riid, void **ppvObject); ULONG (STDMETHODCALLTYPE *AddRef)( IAMClockSlave *This); ULONG (STDMETHODCALLTYPE *Release)( IAMClockSlave *This); /*** IAMClockSlave methods ***/ HRESULT (STDMETHODCALLTYPE *SetErrorTolerance)( IAMClockSlave *This, DWORD dwTolerance); HRESULT (STDMETHODCALLTYPE *GetErrorTolerance)( IAMClockSlave *This, DWORD *pdwTolerance); END_INTERFACE } IAMClockSlaveVtbl; interface IAMClockSlave { CONST_VTBL IAMClockSlaveVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ #define IAMClockSlave_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IAMClockSlave_AddRef(This) (This)->lpVtbl->AddRef(This) #define IAMClockSlave_Release(This) (This)->lpVtbl->Release(This) /*** IAMClockSlave methods ***/ #define IAMClockSlave_SetErrorTolerance(This,dwTolerance) (This)->lpVtbl->SetErrorTolerance(This,dwTolerance) #define IAMClockSlave_GetErrorTolerance(This,pdwTolerance) (This)->lpVtbl->GetErrorTolerance(This,pdwTolerance) #else /*** IUnknown methods ***/ static inline HRESULT IAMClockSlave_QueryInterface(IAMClockSlave* This,REFIID riid,void **ppvObject) { return This->lpVtbl->QueryInterface(This,riid,ppvObject); } static inline ULONG IAMClockSlave_AddRef(IAMClockSlave* This) { return This->lpVtbl->AddRef(This); } static inline ULONG IAMClockSlave_Release(IAMClockSlave* This) { return This->lpVtbl->Release(This); } /*** IAMClockSlave methods ***/ static inline HRESULT IAMClockSlave_SetErrorTolerance(IAMClockSlave* This,DWORD dwTolerance) { return This->lpVtbl->SetErrorTolerance(This,dwTolerance); } static inline HRESULT IAMClockSlave_GetErrorTolerance(IAMClockSlave* This,DWORD *pdwTolerance) { return This->lpVtbl->GetErrorTolerance(This,pdwTolerance); } #endif #endif #endif #endif /* __IAMClockSlave_INTERFACE_DEFINED__ */ typedef struct _AMCOPPSignature { BYTE Signature[256]; } AMCOPPSignature; typedef struct _AMCOPPCommand { GUID macKDI; GUID guidCommandID; DWORD dwSequence; DWORD bSizeData; BYTE CommandData[4056]; } AMCOPPCommand; typedef struct _AMCOPPCommand *LPAMCOPPCommand; typedef struct _AMCOPPStatusInput { GUID rApp; GUID guidStatusRequestID; DWORD dwSequence; DWORD cbSizeData; BYTE StatusData[4056]; } AMCOPPStatusInput; typedef struct _AMCOPPStatusInput *LPAMCOPPStatusInput; typedef struct _AMCOPPStatusOutput { GUID macKDI; DWORD cbSizeData; BYTE COPPStatus[4076]; } AMCOPPStatusOutput; typedef struct _AMCOPPStatusOutput *LPAMCOPPStatusOutput; /***************************************************************************** * IAMCertifiedOutputProtection interface */ #ifndef __IAMCertifiedOutputProtection_INTERFACE_DEFINED__ #define __IAMCertifiedOutputProtection_INTERFACE_DEFINED__ DEFINE_GUID(IID_IAMCertifiedOutputProtection, 0x6feded3e, 0x0ff1, 0x4901, 0xa2,0xf1, 0x43,0xf7,0x01,0x2c,0x85,0x15); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("6feded3e-0ff1-4901-a2f1-43f7012c8515") IAMCertifiedOutputProtection : public IUnknown { virtual HRESULT STDMETHODCALLTYPE KeyExchange( GUID *pRandom, BYTE **VarLenCertGH, DWORD *pdwLengthCertGH) = 0; virtual HRESULT STDMETHODCALLTYPE SessionSequenceStart( AMCOPPSignature *pSig) = 0; virtual HRESULT STDMETHODCALLTYPE ProtectionCommand( const AMCOPPCommand *cmd) = 0; virtual HRESULT STDMETHODCALLTYPE ProtectionStatus( const AMCOPPStatusInput *pStatusInput, AMCOPPStatusOutput *pStatusOutput) = 0; }; #ifdef __CRT_UUID_DECL __CRT_UUID_DECL(IAMCertifiedOutputProtection, 0x6feded3e, 0x0ff1, 0x4901, 0xa2,0xf1, 0x43,0xf7,0x01,0x2c,0x85,0x15) #endif #else typedef struct IAMCertifiedOutputProtectionVtbl { BEGIN_INTERFACE /*** IUnknown methods ***/ HRESULT (STDMETHODCALLTYPE *QueryInterface)( IAMCertifiedOutputProtection *This, REFIID riid, void **ppvObject); ULONG (STDMETHODCALLTYPE *AddRef)( IAMCertifiedOutputProtection *This); ULONG (STDMETHODCALLTYPE *Release)( IAMCertifiedOutputProtection *This); /*** IAMCertifiedOutputProtection methods ***/ HRESULT (STDMETHODCALLTYPE *KeyExchange)( IAMCertifiedOutputProtection *This, GUID *pRandom, BYTE **VarLenCertGH, DWORD *pdwLengthCertGH); HRESULT (STDMETHODCALLTYPE *SessionSequenceStart)( IAMCertifiedOutputProtection *This, AMCOPPSignature *pSig); HRESULT (STDMETHODCALLTYPE *ProtectionCommand)( IAMCertifiedOutputProtection *This, const AMCOPPCommand *cmd); HRESULT (STDMETHODCALLTYPE *ProtectionStatus)( IAMCertifiedOutputProtection *This, const AMCOPPStatusInput *pStatusInput, AMCOPPStatusOutput *pStatusOutput); END_INTERFACE } IAMCertifiedOutputProtectionVtbl; interface IAMCertifiedOutputProtection { CONST_VTBL IAMCertifiedOutputProtectionVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ #define IAMCertifiedOutputProtection_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IAMCertifiedOutputProtection_AddRef(This) (This)->lpVtbl->AddRef(This) #define IAMCertifiedOutputProtection_Release(This) (This)->lpVtbl->Release(This) /*** IAMCertifiedOutputProtection methods ***/ #define IAMCertifiedOutputProtection_KeyExchange(This,pRandom,VarLenCertGH,pdwLengthCertGH) (This)->lpVtbl->KeyExchange(This,pRandom,VarLenCertGH,pdwLengthCertGH) #define IAMCertifiedOutputProtection_SessionSequenceStart(This,pSig) (This)->lpVtbl->SessionSequenceStart(This,pSig) #define IAMCertifiedOutputProtection_ProtectionCommand(This,cmd) (This)->lpVtbl->ProtectionCommand(This,cmd) #define IAMCertifiedOutputProtection_ProtectionStatus(This,pStatusInput,pStatusOutput) (This)->lpVtbl->ProtectionStatus(This,pStatusInput,pStatusOutput) #else /*** IUnknown methods ***/ static inline HRESULT IAMCertifiedOutputProtection_QueryInterface(IAMCertifiedOutputProtection* This,REFIID riid,void **ppvObject) { return This->lpVtbl->QueryInterface(This,riid,ppvObject); } static inline ULONG IAMCertifiedOutputProtection_AddRef(IAMCertifiedOutputProtection* This) { return This->lpVtbl->AddRef(This); } static inline ULONG IAMCertifiedOutputProtection_Release(IAMCertifiedOutputProtection* This) { return This->lpVtbl->Release(This); } /*** IAMCertifiedOutputProtection methods ***/ static inline HRESULT IAMCertifiedOutputProtection_KeyExchange(IAMCertifiedOutputProtection* This,GUID *pRandom,BYTE **VarLenCertGH,DWORD *pdwLengthCertGH) { return This->lpVtbl->KeyExchange(This,pRandom,VarLenCertGH,pdwLengthCertGH); } static inline HRESULT IAMCertifiedOutputProtection_SessionSequenceStart(IAMCertifiedOutputProtection* This,AMCOPPSignature *pSig) { return This->lpVtbl->SessionSequenceStart(This,pSig); } static inline HRESULT IAMCertifiedOutputProtection_ProtectionCommand(IAMCertifiedOutputProtection* This,const AMCOPPCommand *cmd) { return This->lpVtbl->ProtectionCommand(This,cmd); } static inline HRESULT IAMCertifiedOutputProtection_ProtectionStatus(IAMCertifiedOutputProtection* This,const AMCOPPStatusInput *pStatusInput,AMCOPPStatusOutput *pStatusOutput) { return This->lpVtbl->ProtectionStatus(This,pStatusInput,pStatusOutput); } #endif #endif #endif #endif /* __IAMCertifiedOutputProtection_INTERFACE_DEFINED__ */ enum _AM_RENSDEREXFLAGS { AM_RENDEREX_RENDERTOEXISTINGRENDERERS = 0x1 }; /***************************************************************************** * 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) MIDL_INTERFACE("36b73882-c2c8-11cf-8b46-00805f6cef60") 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; }; #ifdef __CRT_UUID_DECL __CRT_UUID_DECL(IFilterGraph2, 0x36b73882, 0xc2c8, 0x11cf, 0x8b,0x46, 0x00,0x80,0x5f,0x6c,0xef,0x60) #endif #else typedef struct IFilterGraph2Vtbl { BEGIN_INTERFACE /*** 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); END_INTERFACE } IFilterGraph2Vtbl; interface IFilterGraph2 { CONST_VTBL IFilterGraph2Vtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ #define IFilterGraph2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IFilterGraph2_AddRef(This) (This)->lpVtbl->AddRef(This) #define IFilterGraph2_Release(This) (This)->lpVtbl->Release(This) /*** IFilterGraph methods ***/ #define IFilterGraph2_AddFilter(This,pFilter,pName) (This)->lpVtbl->AddFilter(This,pFilter,pName) #define IFilterGraph2_RemoveFilter(This,pFilter) (This)->lpVtbl->RemoveFilter(This,pFilter) #define IFilterGraph2_EnumFilters(This,ppEnum) (This)->lpVtbl->EnumFilters(This,ppEnum) #define IFilterGraph2_FindFilterByName(This,pName,ppFilter) (This)->lpVtbl->FindFilterByName(This,pName,ppFilter) #define IFilterGraph2_ConnectDirect(This,ppinOut,ppinIn,pmt) (This)->lpVtbl->ConnectDirect(This,ppinOut,ppinIn,pmt) #define IFilterGraph2_Reconnect(This,ppin) (This)->lpVtbl->Reconnect(This,ppin) #define IFilterGraph2_Disconnect(This,ppin) (This)->lpVtbl->Disconnect(This,ppin) #define IFilterGraph2_SetDefaultSyncSource(This) (This)->lpVtbl->SetDefaultSyncSource(This) /*** IGraphBuilder methods ***/ #define IFilterGraph2_Connect(This,ppinOut,ppinIn) (This)->lpVtbl->Connect(This,ppinOut,ppinIn) #define IFilterGraph2_Render(This,ppinOut) (This)->lpVtbl->Render(This,ppinOut) #define IFilterGraph2_RenderFile(This,lpcwstrFile,lpcwstrPlayList) (This)->lpVtbl->RenderFile(This,lpcwstrFile,lpcwstrPlayList) #define IFilterGraph2_AddSourceFilter(This,lpcwstrFileName,lpcwstrFilterName,ppFilter) (This)->lpVtbl->AddSourceFilter(This,lpcwstrFileName,lpcwstrFilterName,ppFilter) #define IFilterGraph2_SetLogFile(This,hFile) (This)->lpVtbl->SetLogFile(This,hFile) #define IFilterGraph2_Abort(This) (This)->lpVtbl->Abort(This) #define IFilterGraph2_ShouldOperationContinue(This) (This)->lpVtbl->ShouldOperationContinue(This) /*** IFilterGraph2 methods ***/ #define IFilterGraph2_AddSourceFilterForMoniker(This,pMoniker,pCtx,lpcwstrFilterName,ppFilter) (This)->lpVtbl->AddSourceFilterForMoniker(This,pMoniker,pCtx,lpcwstrFilterName,ppFilter) #define IFilterGraph2_ReconnectEx(This,ppin,pmt) (This)->lpVtbl->ReconnectEx(This,ppin,pmt) #define IFilterGraph2_RenderEx(This,pPinOut,dwFlags,pvContext) (This)->lpVtbl->RenderEx(This,pPinOut,dwFlags,pvContext) #else /*** IUnknown methods ***/ static inline HRESULT IFilterGraph2_QueryInterface(IFilterGraph2* This,REFIID riid,void **ppvObject) { return This->lpVtbl->QueryInterface(This,riid,ppvObject); } static inline ULONG IFilterGraph2_AddRef(IFilterGraph2* This) { return This->lpVtbl->AddRef(This); } static inline ULONG IFilterGraph2_Release(IFilterGraph2* This) { return This->lpVtbl->Release(This); } /*** IFilterGraph methods ***/ static inline HRESULT IFilterGraph2_AddFilter(IFilterGraph2* This,IBaseFilter *pFilter,LPCWSTR pName) { return This->lpVtbl->AddFilter(This,pFilter,pName); } static inline HRESULT IFilterGraph2_RemoveFilter(IFilterGraph2* This,IBaseFilter *pFilter) { return This->lpVtbl->RemoveFilter(This,pFilter); } static inline HRESULT IFilterGraph2_EnumFilters(IFilterGraph2* This,IEnumFilters **ppEnum) { return This->lpVtbl->EnumFilters(This,ppEnum); } static inline HRESULT IFilterGraph2_FindFilterByName(IFilterGraph2* This,LPCWSTR pName,IBaseFilter **ppFilter) { return This->lpVtbl->FindFilterByName(This,pName,ppFilter); } static inline HRESULT IFilterGraph2_ConnectDirect(IFilterGraph2* This,IPin *ppinOut,IPin *ppinIn,const AM_MEDIA_TYPE *pmt) { return This->lpVtbl->ConnectDirect(This,ppinOut,ppinIn,pmt); } static inline HRESULT IFilterGraph2_Reconnect(IFilterGraph2* This,IPin *ppin) { return This->lpVtbl->Reconnect(This,ppin); } static inline HRESULT IFilterGraph2_Disconnect(IFilterGraph2* This,IPin *ppin) { return This->lpVtbl->Disconnect(This,ppin); } static inline HRESULT IFilterGraph2_SetDefaultSyncSource(IFilterGraph2* This) { return This->lpVtbl->SetDefaultSyncSource(This); } /*** IGraphBuilder methods ***/ static inline HRESULT IFilterGraph2_Connect(IFilterGraph2* This,IPin *ppinOut,IPin *ppinIn) { return This->lpVtbl->Connect(This,ppinOut,ppinIn); } static inline HRESULT IFilterGraph2_Render(IFilterGraph2* This,IPin *ppinOut) { return This->lpVtbl->Render(This,ppinOut); } static inline HRESULT IFilterGraph2_RenderFile(IFilterGraph2* This,LPCWSTR lpcwstrFile,LPCWSTR lpcwstrPlayList) { return This->lpVtbl->RenderFile(This,lpcwstrFile,lpcwstrPlayList); } static inline HRESULT IFilterGraph2_AddSourceFilter(IFilterGraph2* This,LPCWSTR lpcwstrFileName,LPCWSTR lpcwstrFilterName,IBaseFilter **ppFilter) { return This->lpVtbl->AddSourceFilter(This,lpcwstrFileName,lpcwstrFilterName,ppFilter); } static inline HRESULT IFilterGraph2_SetLogFile(IFilterGraph2* This,DWORD_PTR hFile) { return This->lpVtbl->SetLogFile(This,hFile); } static inline HRESULT IFilterGraph2_Abort(IFilterGraph2* This) { return This->lpVtbl->Abort(This); } static inline HRESULT IFilterGraph2_ShouldOperationContinue(IFilterGraph2* This) { return This->lpVtbl->ShouldOperationContinue(This); } /*** IFilterGraph2 methods ***/ static inline HRESULT IFilterGraph2_AddSourceFilterForMoniker(IFilterGraph2* This,IMoniker *pMoniker,IBindCtx *pCtx,LPCWSTR lpcwstrFilterName,IBaseFilter **ppFilter) { return This->lpVtbl->AddSourceFilterForMoniker(This,pMoniker,pCtx,lpcwstrFilterName,ppFilter); } static inline HRESULT IFilterGraph2_ReconnectEx(IFilterGraph2* This,IPin *ppin,const AM_MEDIA_TYPE *pmt) { return This->lpVtbl->ReconnectEx(This,ppin,pmt); } static inline HRESULT IFilterGraph2_RenderEx(IFilterGraph2* This,IPin *pPinOut,DWORD dwFlags,DWORD *pvContext) { return This->lpVtbl->RenderEx(This,pPinOut,dwFlags,pvContext); } #endif #endif #endif #endif /* __IFilterGraph2_INTERFACE_DEFINED__ */ /***************************************************************************** * 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) MIDL_INTERFACE("56a868bf-0ad4-11ce-b03a-0020af0ba770") IStreamBuilder : public IUnknown { virtual HRESULT STDMETHODCALLTYPE Render( IPin *ppinOut, IGraphBuilder *pGraph) = 0; virtual HRESULT STDMETHODCALLTYPE Backout( IPin *ppinOut, IGraphBuilder *pGraph) = 0; }; #ifdef __CRT_UUID_DECL __CRT_UUID_DECL(IStreamBuilder, 0x56a868bf, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70) #endif #else typedef struct IStreamBuilderVtbl { BEGIN_INTERFACE /*** 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); END_INTERFACE } IStreamBuilderVtbl; interface IStreamBuilder { CONST_VTBL IStreamBuilderVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ #define IStreamBuilder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IStreamBuilder_AddRef(This) (This)->lpVtbl->AddRef(This) #define IStreamBuilder_Release(This) (This)->lpVtbl->Release(This) /*** IStreamBuilder methods ***/ #define IStreamBuilder_Render(This,ppinOut,pGraph) (This)->lpVtbl->Render(This,ppinOut,pGraph) #define IStreamBuilder_Backout(This,ppinOut,pGraph) (This)->lpVtbl->Backout(This,ppinOut,pGraph) #else /*** IUnknown methods ***/ static inline HRESULT IStreamBuilder_QueryInterface(IStreamBuilder* This,REFIID riid,void **ppvObject) { return This->lpVtbl->QueryInterface(This,riid,ppvObject); } static inline ULONG IStreamBuilder_AddRef(IStreamBuilder* This) { return This->lpVtbl->AddRef(This); } static inline ULONG IStreamBuilder_Release(IStreamBuilder* This) { return This->lpVtbl->Release(This); } /*** IStreamBuilder methods ***/ static inline HRESULT IStreamBuilder_Render(IStreamBuilder* This,IPin *ppinOut,IGraphBuilder *pGraph) { return This->lpVtbl->Render(This,ppinOut,pGraph); } static inline HRESULT IStreamBuilder_Backout(IStreamBuilder* This,IPin *ppinOut,IGraphBuilder *pGraph) { return This->lpVtbl->Backout(This,ppinOut,pGraph); } #endif #endif #endif #endif /* __IStreamBuilder_INTERFACE_DEFINED__ */ /***************************************************************************** * IAMStreamConfig interface */ #ifndef __IAMStreamConfig_INTERFACE_DEFINED__ #define __IAMStreamConfig_INTERFACE_DEFINED__ typedef struct _VIDEO_STREAM_CONFIG_CAPS { GUID guid; ULONG VideoStandard; SIZE InputSize; SIZE MinCroppingSize; SIZE MaxCroppingSize; int CropGranularityX; int CropGranularityY; int CropAlignX; int CropAlignY; SIZE MinOutputSize; SIZE MaxOutputSize; int OutputGranularityX; int OutputGranularityY; int StretchTapsX; int StretchTapsY; int ShrinkTapsX; int ShrinkTapsY; LONGLONG MinFrameInterval; LONGLONG MaxFrameInterval; LONG MinBitsPerSecond; LONG MaxBitsPerSecond; } VIDEO_STREAM_CONFIG_CAPS; typedef struct _AUDIO_STREAM_CONFIG_CAPS { GUID guid; ULONG MinimumChannels; ULONG MaximumChannels; ULONG ChannelsGranularity; ULONG MinimumBitsPerSample; ULONG MaximumBitsPerSample; ULONG BitsPerSampleGranularity; ULONG MinimumSampleFrequency; ULONG MaximumSampleFrequency; ULONG SampleFrequencyGranularity; } AUDIO_STREAM_CONFIG_CAPS; DEFINE_GUID(IID_IAMStreamConfig, 0xc6e13340, 0x30ac, 0x11d0, 0xa1,0x8c, 0x00,0xa0,0xc9,0x11,0x89,0x56); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("c6e13340-30ac-11d0-a18c-00a0c9118956") IAMStreamConfig : public IUnknown { virtual HRESULT STDMETHODCALLTYPE SetFormat( AM_MEDIA_TYPE *pmt) = 0; virtual HRESULT STDMETHODCALLTYPE GetFormat( AM_MEDIA_TYPE **pmt) = 0; virtual HRESULT STDMETHODCALLTYPE GetNumberOfCapabilities( int *piCount, int *piSize) = 0; virtual HRESULT STDMETHODCALLTYPE GetStreamCaps( int iIndex, AM_MEDIA_TYPE **pmt, BYTE *pSCC) = 0; }; #ifdef __CRT_UUID_DECL __CRT_UUID_DECL(IAMStreamConfig, 0xc6e13340, 0x30ac, 0x11d0, 0xa1,0x8c, 0x00,0xa0,0xc9,0x11,0x89,0x56) #endif #else typedef struct IAMStreamConfigVtbl { BEGIN_INTERFACE /*** IUnknown methods ***/ HRESULT (STDMETHODCALLTYPE *QueryInterface)( IAMStreamConfig *This, REFIID riid, void **ppvObject); ULONG (STDMETHODCALLTYPE *AddRef)( IAMStreamConfig *This); ULONG (STDMETHODCALLTYPE *Release)( IAMStreamConfig *This); /*** IAMStreamConfig methods ***/ HRESULT (STDMETHODCALLTYPE *SetFormat)( IAMStreamConfig *This, AM_MEDIA_TYPE *pmt); HRESULT (STDMETHODCALLTYPE *GetFormat)( IAMStreamConfig *This, AM_MEDIA_TYPE **pmt); HRESULT (STDMETHODCALLTYPE *GetNumberOfCapabilities)( IAMStreamConfig *This, int *piCount, int *piSize); HRESULT (STDMETHODCALLTYPE *GetStreamCaps)( IAMStreamConfig *This, int iIndex, AM_MEDIA_TYPE **pmt, BYTE *pSCC); END_INTERFACE } IAMStreamConfigVtbl; interface IAMStreamConfig { CONST_VTBL IAMStreamConfigVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ #define IAMStreamConfig_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IAMStreamConfig_AddRef(This) (This)->lpVtbl->AddRef(This) #define IAMStreamConfig_Release(This) (This)->lpVtbl->Release(This) /*** IAMStreamConfig methods ***/ #define IAMStreamConfig_SetFormat(This,pmt) (This)->lpVtbl->SetFormat(This,pmt) #define IAMStreamConfig_GetFormat(This,pmt) (This)->lpVtbl->GetFormat(This,pmt) #define IAMStreamConfig_GetNumberOfCapabilities(This,piCount,piSize) (This)->lpVtbl->GetNumberOfCapabilities(This,piCount,piSize) #define IAMStreamConfig_GetStreamCaps(This,iIndex,pmt,pSCC) (This)->lpVtbl->GetStreamCaps(This,iIndex,pmt,pSCC) #else /*** IUnknown methods ***/ static inline HRESULT IAMStreamConfig_QueryInterface(IAMStreamConfig* This,REFIID riid,void **ppvObject) { return This->lpVtbl->QueryInterface(This,riid,ppvObject); } static inline ULONG IAMStreamConfig_AddRef(IAMStreamConfig* This) { return This->lpVtbl->AddRef(This); } static inline ULONG IAMStreamConfig_Release(IAMStreamConfig* This) { return This->lpVtbl->Release(This); } /*** IAMStreamConfig methods ***/ static inline HRESULT IAMStreamConfig_SetFormat(IAMStreamConfig* This,AM_MEDIA_TYPE *pmt) { return This->lpVtbl->SetFormat(This,pmt); } static inline HRESULT IAMStreamConfig_GetFormat(IAMStreamConfig* This,AM_MEDIA_TYPE **pmt) { return This->lpVtbl->GetFormat(This,pmt); } static inline HRESULT IAMStreamConfig_GetNumberOfCapabilities(IAMStreamConfig* This,int *piCount,int *piSize) { return This->lpVtbl->GetNumberOfCapabilities(This,piCount,piSize); } static inline HRESULT IAMStreamConfig_GetStreamCaps(IAMStreamConfig* This,int iIndex,AM_MEDIA_TYPE **pmt,BYTE *pSCC) { return This->lpVtbl->GetStreamCaps(This,iIndex,pmt,pSCC); } #endif #endif #endif #endif /* __IAMStreamConfig_INTERFACE_DEFINED__ */ typedef enum tagVideoProcAmpProperty { VideoProcAmp_Brightness = 0, VideoProcAmp_Contrast = 1, VideoProcAmp_Hue = 2, VideoProcAmp_Saturation = 3, VideoProcAmp_Sharpness = 4, VideoProcAmp_Gamma = 5, VideoProcAmp_ColorEnable = 6, VideoProcAmp_WhiteBalance = 7, VideoProcAmp_BacklightCompensation = 8, VideoProcAmp_Gain = 9 } VideoProcAmpProperty; typedef enum tagVideoProcAmpFlags { VideoProcAmp_Flags_Auto = 0x1, VideoProcAmp_Flags_Manual = 0x2 } VideoProcAmpFlags; /***************************************************************************** * IAMVideoProcAmp interface */ #ifndef __IAMVideoProcAmp_INTERFACE_DEFINED__ #define __IAMVideoProcAmp_INTERFACE_DEFINED__ DEFINE_GUID(IID_IAMVideoProcAmp, 0xc6e13360, 0x30ac, 0x11d0, 0xa1,0x8c, 0x00,0xa0,0xc9,0x11,0x89,0x56); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("c6e13360-30ac-11d0-a18c-00a0c9118956") IAMVideoProcAmp : public IUnknown { virtual HRESULT STDMETHODCALLTYPE GetRange( LONG Property, LONG *pMin, LONG *pMax, LONG *pSteppingDelta, LONG *pDefault, LONG *pCapsFlags) = 0; virtual HRESULT STDMETHODCALLTYPE Set( LONG Property, LONG lValue, LONG Flags) = 0; virtual HRESULT STDMETHODCALLTYPE Get( LONG Property, LONG *lValue, LONG *Flags) = 0; }; #ifdef __CRT_UUID_DECL __CRT_UUID_DECL(IAMVideoProcAmp, 0xc6e13360, 0x30ac, 0x11d0, 0xa1,0x8c, 0x00,0xa0,0xc9,0x11,0x89,0x56) #endif #else typedef struct IAMVideoProcAmpVtbl { BEGIN_INTERFACE /*** IUnknown methods ***/ HRESULT (STDMETHODCALLTYPE *QueryInterface)( IAMVideoProcAmp *This, REFIID riid, void **ppvObject); ULONG (STDMETHODCALLTYPE *AddRef)( IAMVideoProcAmp *This); ULONG (STDMETHODCALLTYPE *Release)( IAMVideoProcAmp *This); /*** IAMVideoProcAmp methods ***/ HRESULT (STDMETHODCALLTYPE *GetRange)( IAMVideoProcAmp *This, LONG Property, LONG *pMin, LONG *pMax, LONG *pSteppingDelta, LONG *pDefault, LONG *pCapsFlags); HRESULT (STDMETHODCALLTYPE *Set)( IAMVideoProcAmp *This, LONG Property, LONG lValue, LONG Flags); HRESULT (STDMETHODCALLTYPE *Get)( IAMVideoProcAmp *This, LONG Property, LONG *lValue, LONG *Flags); END_INTERFACE } IAMVideoProcAmpVtbl; interface IAMVideoProcAmp { CONST_VTBL IAMVideoProcAmpVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ #define IAMVideoProcAmp_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IAMVideoProcAmp_AddRef(This) (This)->lpVtbl->AddRef(This) #define IAMVideoProcAmp_Release(This) (This)->lpVtbl->Release(This) /*** IAMVideoProcAmp methods ***/ #define IAMVideoProcAmp_GetRange(This,Property,pMin,pMax,pSteppingDelta,pDefault,pCapsFlags) (This)->lpVtbl->GetRange(This,Property,pMin,pMax,pSteppingDelta,pDefault,pCapsFlags) #define IAMVideoProcAmp_Set(This,Property,lValue,Flags) (This)->lpVtbl->Set(This,Property,lValue,Flags) #define IAMVideoProcAmp_Get(This,Property,lValue,Flags) (This)->lpVtbl->Get(This,Property,lValue,Flags) #else /*** IUnknown methods ***/ static inline HRESULT IAMVideoProcAmp_QueryInterface(IAMVideoProcAmp* This,REFIID riid,void **ppvObject) { return This->lpVtbl->QueryInterface(This,riid,ppvObject); } static inline ULONG IAMVideoProcAmp_AddRef(IAMVideoProcAmp* This) { return This->lpVtbl->AddRef(This); } static inline ULONG IAMVideoProcAmp_Release(IAMVideoProcAmp* This) { return This->lpVtbl->Release(This); } /*** IAMVideoProcAmp methods ***/ static inline HRESULT IAMVideoProcAmp_GetRange(IAMVideoProcAmp* This,LONG Property,LONG *pMin,LONG *pMax,LONG *pSteppingDelta,LONG *pDefault,LONG *pCapsFlags) { return This->lpVtbl->GetRange(This,Property,pMin,pMax,pSteppingDelta,pDefault,pCapsFlags); } static inline HRESULT IAMVideoProcAmp_Set(IAMVideoProcAmp* This,LONG Property,LONG lValue,LONG Flags) { return This->lpVtbl->Set(This,Property,lValue,Flags); } static inline HRESULT IAMVideoProcAmp_Get(IAMVideoProcAmp* This,LONG Property,LONG *lValue,LONG *Flags) { return This->lpVtbl->Get(This,Property,lValue,Flags); } #endif #endif #endif #endif /* __IAMVideoProcAmp_INTERFACE_DEFINED__ */ /***************************************************************************** * 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) MIDL_INTERFACE("56a868aa-0ad4-11ce-b03a-0020af0ba770") 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; }; #ifdef __CRT_UUID_DECL __CRT_UUID_DECL(IAsyncReader, 0x56a868aa, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70) #endif #else typedef struct IAsyncReaderVtbl { BEGIN_INTERFACE /*** 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); END_INTERFACE } IAsyncReaderVtbl; interface IAsyncReader { CONST_VTBL IAsyncReaderVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ #define IAsyncReader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IAsyncReader_AddRef(This) (This)->lpVtbl->AddRef(This) #define IAsyncReader_Release(This) (This)->lpVtbl->Release(This) /*** IAsyncReader methods ***/ #define IAsyncReader_RequestAllocator(This,pPreferred,pProps,ppActual) (This)->lpVtbl->RequestAllocator(This,pPreferred,pProps,ppActual) #define IAsyncReader_Request(This,pSample,dwUser) (This)->lpVtbl->Request(This,pSample,dwUser) #define IAsyncReader_WaitForNext(This,dwTimeout,ppSample,pdwUser) (This)->lpVtbl->WaitForNext(This,dwTimeout,ppSample,pdwUser) #define IAsyncReader_SyncReadAligned(This,pSample) (This)->lpVtbl->SyncReadAligned(This,pSample) #define IAsyncReader_SyncRead(This,llPosition,lLength,pBuffer) (This)->lpVtbl->SyncRead(This,llPosition,lLength,pBuffer) #define IAsyncReader_Length(This,pTotal,pAvailable) (This)->lpVtbl->Length(This,pTotal,pAvailable) #define IAsyncReader_BeginFlush(This) (This)->lpVtbl->BeginFlush(This) #define IAsyncReader_EndFlush(This) (This)->lpVtbl->EndFlush(This) #else /*** IUnknown methods ***/ static inline HRESULT IAsyncReader_QueryInterface(IAsyncReader* This,REFIID riid,void **ppvObject) { return This->lpVtbl->QueryInterface(This,riid,ppvObject); } static inline ULONG IAsyncReader_AddRef(IAsyncReader* This) { return This->lpVtbl->AddRef(This); } static inline ULONG IAsyncReader_Release(IAsyncReader* This) { return This->lpVtbl->Release(This); } /*** IAsyncReader methods ***/ static inline HRESULT IAsyncReader_RequestAllocator(IAsyncReader* This,IMemAllocator *pPreferred,ALLOCATOR_PROPERTIES *pProps,IMemAllocator **ppActual) { return This->lpVtbl->RequestAllocator(This,pPreferred,pProps,ppActual); } static inline HRESULT IAsyncReader_Request(IAsyncReader* This,IMediaSample *pSample,DWORD_PTR dwUser) { return This->lpVtbl->Request(This,pSample,dwUser); } static inline HRESULT IAsyncReader_WaitForNext(IAsyncReader* This,DWORD dwTimeout,IMediaSample **ppSample,DWORD_PTR *pdwUser) { return This->lpVtbl->WaitForNext(This,dwTimeout,ppSample,pdwUser); } static inline HRESULT IAsyncReader_SyncReadAligned(IAsyncReader* This,IMediaSample *pSample) { return This->lpVtbl->SyncReadAligned(This,pSample); } static inline HRESULT IAsyncReader_SyncRead(IAsyncReader* This,LONGLONG llPosition,LONG lLength,BYTE *pBuffer) { return This->lpVtbl->SyncRead(This,llPosition,lLength,pBuffer); } static inline HRESULT IAsyncReader_Length(IAsyncReader* This,LONGLONG *pTotal,LONGLONG *pAvailable) { return This->lpVtbl->Length(This,pTotal,pAvailable); } static inline HRESULT IAsyncReader_BeginFlush(IAsyncReader* This) { return This->lpVtbl->BeginFlush(This); } static inline HRESULT IAsyncReader_EndFlush(IAsyncReader* This) { return This->lpVtbl->EndFlush(This); } #endif #endif #endif #endif /* __IAsyncReader_INTERFACE_DEFINED__ */ /***************************************************************************** * 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) MIDL_INTERFACE("56a868ab-0ad4-11ce-b03a-0020af0ba770") IGraphVersion : public IUnknown { virtual HRESULT STDMETHODCALLTYPE QueryVersion( LONG *pVersion) = 0; }; #ifdef __CRT_UUID_DECL __CRT_UUID_DECL(IGraphVersion, 0x56a868ab, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70) #endif #else typedef struct IGraphVersionVtbl { BEGIN_INTERFACE /*** 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); END_INTERFACE } IGraphVersionVtbl; interface IGraphVersion { CONST_VTBL IGraphVersionVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ #define IGraphVersion_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IGraphVersion_AddRef(This) (This)->lpVtbl->AddRef(This) #define IGraphVersion_Release(This) (This)->lpVtbl->Release(This) /*** IGraphVersion methods ***/ #define IGraphVersion_QueryVersion(This,pVersion) (This)->lpVtbl->QueryVersion(This,pVersion) #else /*** IUnknown methods ***/ static inline HRESULT IGraphVersion_QueryInterface(IGraphVersion* This,REFIID riid,void **ppvObject) { return This->lpVtbl->QueryInterface(This,riid,ppvObject); } static inline ULONG IGraphVersion_AddRef(IGraphVersion* This) { return This->lpVtbl->AddRef(This); } static inline ULONG IGraphVersion_Release(IGraphVersion* This) { return This->lpVtbl->Release(This); } /*** IGraphVersion methods ***/ static inline HRESULT IGraphVersion_QueryVersion(IGraphVersion* This,LONG *pVersion) { return This->lpVtbl->QueryVersion(This,pVersion); } #endif #endif #endif #endif /* __IGraphVersion_INTERFACE_DEFINED__ */ /***************************************************************************** * 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) MIDL_INTERFACE("56a868ad-0ad4-11ce-b03a-0020af0ba770") IResourceConsumer : public IUnknown { virtual HRESULT STDMETHODCALLTYPE AcquireResource( LONG idResource) = 0; virtual HRESULT STDMETHODCALLTYPE ReleaseResource( LONG idResource) = 0; }; #ifdef __CRT_UUID_DECL __CRT_UUID_DECL(IResourceConsumer, 0x56a868ad, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70) #endif #else typedef struct IResourceConsumerVtbl { BEGIN_INTERFACE /*** 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); END_INTERFACE } IResourceConsumerVtbl; interface IResourceConsumer { CONST_VTBL IResourceConsumerVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ #define IResourceConsumer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IResourceConsumer_AddRef(This) (This)->lpVtbl->AddRef(This) #define IResourceConsumer_Release(This) (This)->lpVtbl->Release(This) /*** IResourceConsumer methods ***/ #define IResourceConsumer_AcquireResource(This,idResource) (This)->lpVtbl->AcquireResource(This,idResource) #define IResourceConsumer_ReleaseResource(This,idResource) (This)->lpVtbl->ReleaseResource(This,idResource) #else /*** IUnknown methods ***/ static inline HRESULT IResourceConsumer_QueryInterface(IResourceConsumer* This,REFIID riid,void **ppvObject) { return This->lpVtbl->QueryInterface(This,riid,ppvObject); } static inline ULONG IResourceConsumer_AddRef(IResourceConsumer* This) { return This->lpVtbl->AddRef(This); } static inline ULONG IResourceConsumer_Release(IResourceConsumer* This) { return This->lpVtbl->Release(This); } /*** IResourceConsumer methods ***/ static inline HRESULT IResourceConsumer_AcquireResource(IResourceConsumer* This,LONG idResource) { return This->lpVtbl->AcquireResource(This,idResource); } static inline HRESULT IResourceConsumer_ReleaseResource(IResourceConsumer* This,LONG idResource) { return This->lpVtbl->ReleaseResource(This,idResource); } #endif #endif #endif #endif /* __IResourceConsumer_INTERFACE_DEFINED__ */ /***************************************************************************** * 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) MIDL_INTERFACE("56a868ac-0ad4-11ce-b03a-0020af0ba770") 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; }; #ifdef __CRT_UUID_DECL __CRT_UUID_DECL(IResourceManager, 0x56a868ac, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70) #endif #else typedef struct IResourceManagerVtbl { BEGIN_INTERFACE /*** 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); END_INTERFACE } IResourceManagerVtbl; interface IResourceManager { CONST_VTBL IResourceManagerVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ #define IResourceManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IResourceManager_AddRef(This) (This)->lpVtbl->AddRef(This) #define IResourceManager_Release(This) (This)->lpVtbl->Release(This) /*** IResourceManager methods ***/ #define IResourceManager_Register(This,pName,cResource,plToken) (This)->lpVtbl->Register(This,pName,cResource,plToken) #define IResourceManager_RegisterGroup(This,pName,cResource,palTokens,plToken) (This)->lpVtbl->RegisterGroup(This,pName,cResource,palTokens,plToken) #define IResourceManager_RequestResource(This,idResource,pFocusObject,pConsumer) (This)->lpVtbl->RequestResource(This,idResource,pFocusObject,pConsumer) #define IResourceManager_NotifyAcquire(This,idResource,pConsumer,hr) (This)->lpVtbl->NotifyAcquire(This,idResource,pConsumer,hr) #define IResourceManager_NotifyRelease(This,idResource,pConsumer,bStillWant) (This)->lpVtbl->NotifyRelease(This,idResource,pConsumer,bStillWant) #define IResourceManager_CancelRequest(This,idResource,pConsumer) (This)->lpVtbl->CancelRequest(This,idResource,pConsumer) #define IResourceManager_SetFocus(This,pFocusObject) (This)->lpVtbl->SetFocus(This,pFocusObject) #define IResourceManager_ReleaseFocus(This,pFocusObject) (This)->lpVtbl->ReleaseFocus(This,pFocusObject) #else /*** IUnknown methods ***/ static inline HRESULT IResourceManager_QueryInterface(IResourceManager* This,REFIID riid,void **ppvObject) { return This->lpVtbl->QueryInterface(This,riid,ppvObject); } static inline ULONG IResourceManager_AddRef(IResourceManager* This) { return This->lpVtbl->AddRef(This); } static inline ULONG IResourceManager_Release(IResourceManager* This) { return This->lpVtbl->Release(This); } /*** IResourceManager methods ***/ static inline HRESULT IResourceManager_Register(IResourceManager* This,LPCWSTR pName,LONG cResource,LONG *plToken) { return This->lpVtbl->Register(This,pName,cResource,plToken); } static inline HRESULT IResourceManager_RegisterGroup(IResourceManager* This,LPCWSTR pName,LONG cResource,LONG *palTokens,LONG *plToken) { return This->lpVtbl->RegisterGroup(This,pName,cResource,palTokens,plToken); } static inline HRESULT IResourceManager_RequestResource(IResourceManager* This,LONG idResource,IUnknown *pFocusObject,IResourceConsumer *pConsumer) { return This->lpVtbl->RequestResource(This,idResource,pFocusObject,pConsumer); } static inline HRESULT IResourceManager_NotifyAcquire(IResourceManager* This,LONG idResource,IResourceConsumer *pConsumer,HRESULT hr) { return This->lpVtbl->NotifyAcquire(This,idResource,pConsumer,hr); } static inline HRESULT IResourceManager_NotifyRelease(IResourceManager* This,LONG idResource,IResourceConsumer *pConsumer,BOOL bStillWant) { return This->lpVtbl->NotifyRelease(This,idResource,pConsumer,bStillWant); } static inline HRESULT IResourceManager_CancelRequest(IResourceManager* This,LONG idResource,IResourceConsumer *pConsumer) { return This->lpVtbl->CancelRequest(This,idResource,pConsumer); } static inline HRESULT IResourceManager_SetFocus(IResourceManager* This,IUnknown *pFocusObject) { return This->lpVtbl->SetFocus(This,pFocusObject); } static inline HRESULT IResourceManager_ReleaseFocus(IResourceManager* This,IUnknown *pFocusObject) { return This->lpVtbl->ReleaseFocus(This,pFocusObject); } #endif #endif #endif #endif /* __IResourceManager_INTERFACE_DEFINED__ */ typedef enum AM_STREAM_INFO_FLAGS { AM_STREAM_INFO_START_DEFINED = 0x1, AM_STREAM_INFO_STOP_DEFINED = 0x2, AM_STREAM_INFO_DISCARDING = 0x4, AM_STREAM_INFO_STOP_SEND_EXTRA = 0x10 } AM_STREAM_INFO_FLAGS; typedef struct AM_STREAM_INFO { REFERENCE_TIME tStart; REFERENCE_TIME tStop; DWORD dwStartCookie; DWORD dwStopCookie; DWORD dwFlags; } AM_STREAM_INFO; /***************************************************************************** * IAMStreamControl interface */ #ifndef __IAMStreamControl_INTERFACE_DEFINED__ #define __IAMStreamControl_INTERFACE_DEFINED__ DEFINE_GUID(IID_IAMStreamControl, 0x36b73881, 0xc2c8, 0x11cf, 0x8b,0x46, 0x00,0x80,0x5f,0x6c,0xef,0x60); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("36b73881-c2c8-11cf-8b46-00805f6cef60") IAMStreamControl : public IUnknown { virtual HRESULT STDMETHODCALLTYPE StartAt( const REFERENCE_TIME *ptStart, DWORD dwCookie) = 0; virtual HRESULT STDMETHODCALLTYPE StopAt( const REFERENCE_TIME *ptStop, BOOL bSendExtra, DWORD dwCookie) = 0; virtual HRESULT STDMETHODCALLTYPE GetInfo( AM_STREAM_INFO *pInfo) = 0; }; #ifdef __CRT_UUID_DECL __CRT_UUID_DECL(IAMStreamControl, 0x36b73881, 0xc2c8, 0x11cf, 0x8b,0x46, 0x00,0x80,0x5f,0x6c,0xef,0x60) #endif #else typedef struct IAMStreamControlVtbl { BEGIN_INTERFACE /*** IUnknown methods ***/ HRESULT (STDMETHODCALLTYPE *QueryInterface)( IAMStreamControl *This, REFIID riid, void **ppvObject); ULONG (STDMETHODCALLTYPE *AddRef)( IAMStreamControl *This); ULONG (STDMETHODCALLTYPE *Release)( IAMStreamControl *This); /*** IAMStreamControl methods ***/ HRESULT (STDMETHODCALLTYPE *StartAt)( IAMStreamControl *This, const REFERENCE_TIME *ptStart, DWORD dwCookie); HRESULT (STDMETHODCALLTYPE *StopAt)( IAMStreamControl *This, const REFERENCE_TIME *ptStop, BOOL bSendExtra, DWORD dwCookie); HRESULT (STDMETHODCALLTYPE *GetInfo)( IAMStreamControl *This, AM_STREAM_INFO *pInfo); END_INTERFACE } IAMStreamControlVtbl; interface IAMStreamControl { CONST_VTBL IAMStreamControlVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ #define IAMStreamControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IAMStreamControl_AddRef(This) (This)->lpVtbl->AddRef(This) #define IAMStreamControl_Release(This) (This)->lpVtbl->Release(This) /*** IAMStreamControl methods ***/ #define IAMStreamControl_StartAt(This,ptStart,dwCookie) (This)->lpVtbl->StartAt(This,ptStart,dwCookie) #define IAMStreamControl_StopAt(This,ptStop,bSendExtra,dwCookie) (This)->lpVtbl->StopAt(This,ptStop,bSendExtra,dwCookie) #define IAMStreamControl_GetInfo(This,pInfo) (This)->lpVtbl->GetInfo(This,pInfo) #else /*** IUnknown methods ***/ static inline HRESULT IAMStreamControl_QueryInterface(IAMStreamControl* This,REFIID riid,void **ppvObject) { return This->lpVtbl->QueryInterface(This,riid,ppvObject); } static inline ULONG IAMStreamControl_AddRef(IAMStreamControl* This) { return This->lpVtbl->AddRef(This); } static inline ULONG IAMStreamControl_Release(IAMStreamControl* This) { return This->lpVtbl->Release(This); } /*** IAMStreamControl methods ***/ static inline HRESULT IAMStreamControl_StartAt(IAMStreamControl* This,const REFERENCE_TIME *ptStart,DWORD dwCookie) { return This->lpVtbl->StartAt(This,ptStart,dwCookie); } static inline HRESULT IAMStreamControl_StopAt(IAMStreamControl* This,const REFERENCE_TIME *ptStop,BOOL bSendExtra,DWORD dwCookie) { return This->lpVtbl->StopAt(This,ptStop,bSendExtra,dwCookie); } static inline HRESULT IAMStreamControl_GetInfo(IAMStreamControl* This,AM_STREAM_INFO *pInfo) { return This->lpVtbl->GetInfo(This,pInfo); } #endif #endif #endif #endif /* __IAMStreamControl_INTERFACE_DEFINED__ */ #ifndef _IKsPropertySet_ #define _IKsPropertySet_ #define KSPROPERTY_SUPPORT_GET 1 #define KSPROPERTY_SUPPORT_SET 2 typedef enum AMPROPERTY_PIN { AMPROPERTY_PIN_CATEGORY = 0, AMPROPERTY_PIN_MEDIUM = 1 } AMPROPERTY_PIN; /***************************************************************************** * 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) MIDL_INTERFACE("31efac30-515c-11d0-a9aa-00aa0061be93") 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; }; #ifdef __CRT_UUID_DECL __CRT_UUID_DECL(IKsPropertySet, 0x31efac30, 0x515c, 0x11d0, 0xa9,0xaa, 0x00,0xaa,0x00,0x61,0xbe,0x93) #endif #else typedef struct IKsPropertySetVtbl { BEGIN_INTERFACE /*** 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); END_INTERFACE } IKsPropertySetVtbl; interface IKsPropertySet { CONST_VTBL IKsPropertySetVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ #define IKsPropertySet_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IKsPropertySet_AddRef(This) (This)->lpVtbl->AddRef(This) #define IKsPropertySet_Release(This) (This)->lpVtbl->Release(This) /*** IKsPropertySet methods ***/ #define IKsPropertySet_Set(This,guidPropSet,dwPropID,pInstanceData,cbInstanceData,pPropData,cbPropData) (This)->lpVtbl->Set(This,guidPropSet,dwPropID,pInstanceData,cbInstanceData,pPropData,cbPropData) #define IKsPropertySet_Get(This,guidPropSet,dwPropID,pInstanceData,cbInstanceData,pPropData,cbPropData,pcbReturned) (This)->lpVtbl->Get(This,guidPropSet,dwPropID,pInstanceData,cbInstanceData,pPropData,cbPropData,pcbReturned) #define IKsPropertySet_QuerySupported(This,guidPropSet,dwPropID,pTypeSupport) (This)->lpVtbl->QuerySupported(This,guidPropSet,dwPropID,pTypeSupport) #else /*** IUnknown methods ***/ static inline HRESULT IKsPropertySet_QueryInterface(IKsPropertySet* This,REFIID riid,void **ppvObject) { return This->lpVtbl->QueryInterface(This,riid,ppvObject); } static inline ULONG IKsPropertySet_AddRef(IKsPropertySet* This) { return This->lpVtbl->AddRef(This); } static inline ULONG IKsPropertySet_Release(IKsPropertySet* This) { return This->lpVtbl->Release(This); } /*** IKsPropertySet methods ***/ static inline HRESULT IKsPropertySet_Set(IKsPropertySet* This,REFGUID guidPropSet,DWORD dwPropID,LPVOID pInstanceData,DWORD cbInstanceData,LPVOID pPropData,DWORD cbPropData) { return This->lpVtbl->Set(This,guidPropSet,dwPropID,pInstanceData,cbInstanceData,pPropData,cbPropData); } static inline HRESULT IKsPropertySet_Get(IKsPropertySet* This,REFGUID guidPropSet,DWORD dwPropID,LPVOID pInstanceData,DWORD cbInstanceData,LPVOID pPropData,DWORD cbPropData,DWORD *pcbReturned) { return This->lpVtbl->Get(This,guidPropSet,dwPropID,pInstanceData,cbInstanceData,pPropData,cbPropData,pcbReturned); } static inline HRESULT IKsPropertySet_QuerySupported(IKsPropertySet* This,REFGUID guidPropSet,DWORD dwPropID,DWORD *pTypeSupport) { return This->lpVtbl->QuerySupported(This,guidPropSet,dwPropID,pTypeSupport); } #endif #endif #endif #endif /* __IKsPropertySet_INTERFACE_DEFINED__ */ #endif /* _IKsPropertySet_ */ /***************************************************************************** * IMediaPropertyBag interface */ #ifndef __IMediaPropertyBag_INTERFACE_DEFINED__ #define __IMediaPropertyBag_INTERFACE_DEFINED__ typedef IMediaPropertyBag *LPMEDIAPROPERTYBAG; DEFINE_GUID(IID_IMediaPropertyBag, 0x6025a880, 0xc0d5, 0x11d0, 0xbd,0x4e, 0x00,0xa0,0xc9,0x11,0xce,0x86); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("6025a880-c0d5-11d0-bd4e-00a0c911ce86") IMediaPropertyBag : public IPropertyBag { virtual HRESULT STDMETHODCALLTYPE EnumProperty( ULONG iProperty, VARIANT *pvarPropertyName, VARIANT *pvarPropertyValue) = 0; }; #ifdef __CRT_UUID_DECL __CRT_UUID_DECL(IMediaPropertyBag, 0x6025a880, 0xc0d5, 0x11d0, 0xbd,0x4e, 0x00,0xa0,0xc9,0x11,0xce,0x86) #endif #else typedef struct IMediaPropertyBagVtbl { BEGIN_INTERFACE /*** IUnknown methods ***/ HRESULT (STDMETHODCALLTYPE *QueryInterface)( IMediaPropertyBag *This, REFIID riid, void **ppvObject); ULONG (STDMETHODCALLTYPE *AddRef)( IMediaPropertyBag *This); ULONG (STDMETHODCALLTYPE *Release)( IMediaPropertyBag *This); /*** IPropertyBag methods ***/ HRESULT (STDMETHODCALLTYPE *Read)( IMediaPropertyBag *This, LPCOLESTR pszPropName, VARIANT *pVar, IErrorLog *pErrorLog); HRESULT (STDMETHODCALLTYPE *Write)( IMediaPropertyBag *This, LPCOLESTR pszPropName, VARIANT *pVar); /*** IMediaPropertyBag methods ***/ HRESULT (STDMETHODCALLTYPE *EnumProperty)( IMediaPropertyBag *This, ULONG iProperty, VARIANT *pvarPropertyName, VARIANT *pvarPropertyValue); END_INTERFACE } IMediaPropertyBagVtbl; interface IMediaPropertyBag { CONST_VTBL IMediaPropertyBagVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ #define IMediaPropertyBag_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IMediaPropertyBag_AddRef(This) (This)->lpVtbl->AddRef(This) #define IMediaPropertyBag_Release(This) (This)->lpVtbl->Release(This) /*** IPropertyBag methods ***/ #define IMediaPropertyBag_Read(This,pszPropName,pVar,pErrorLog) (This)->lpVtbl->Read(This,pszPropName,pVar,pErrorLog) #define IMediaPropertyBag_Write(This,pszPropName,pVar) (This)->lpVtbl->Write(This,pszPropName,pVar) /*** IMediaPropertyBag methods ***/ #define IMediaPropertyBag_EnumProperty(This,iProperty,pvarPropertyName,pvarPropertyValue) (This)->lpVtbl->EnumProperty(This,iProperty,pvarPropertyName,pvarPropertyValue) #else /*** IUnknown methods ***/ static inline HRESULT IMediaPropertyBag_QueryInterface(IMediaPropertyBag* This,REFIID riid,void **ppvObject) { return This->lpVtbl->QueryInterface(This,riid,ppvObject); } static inline ULONG IMediaPropertyBag_AddRef(IMediaPropertyBag* This) { return This->lpVtbl->AddRef(This); } static inline ULONG IMediaPropertyBag_Release(IMediaPropertyBag* This) { return This->lpVtbl->Release(This); } /*** IPropertyBag methods ***/ static inline HRESULT IMediaPropertyBag_Read(IMediaPropertyBag* This,LPCOLESTR pszPropName,VARIANT *pVar,IErrorLog *pErrorLog) { return This->lpVtbl->Read(This,pszPropName,pVar,pErrorLog); } static inline HRESULT IMediaPropertyBag_Write(IMediaPropertyBag* This,LPCOLESTR pszPropName,VARIANT *pVar) { return This->lpVtbl->Write(This,pszPropName,pVar); } /*** IMediaPropertyBag methods ***/ static inline HRESULT IMediaPropertyBag_EnumProperty(IMediaPropertyBag* This,ULONG iProperty,VARIANT *pvarPropertyName,VARIANT *pvarPropertyValue) { return This->lpVtbl->EnumProperty(This,iProperty,pvarPropertyName,pvarPropertyValue); } #endif #endif #endif #endif /* __IMediaPropertyBag_INTERFACE_DEFINED__ */ /***************************************************************************** * IPersistMediaPropertyBag interface */ #ifndef __IPersistMediaPropertyBag_INTERFACE_DEFINED__ #define __IPersistMediaPropertyBag_INTERFACE_DEFINED__ typedef IPersistMediaPropertyBag *LPPERSISTMEDIAPROPERTYBAG; DEFINE_GUID(IID_IPersistMediaPropertyBag, 0x5738e040, 0xb67f, 0x11d0, 0xbd,0x4d, 0x00,0xa0,0xc9,0x11,0xce,0x86); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("5738e040-b67f-11d0-bd4d-00a0c911ce86") IPersistMediaPropertyBag : public IPersist { virtual HRESULT STDMETHODCALLTYPE InitNew( ) = 0; virtual HRESULT STDMETHODCALLTYPE Load( IMediaPropertyBag *pPropBag, IErrorLog *pErrorLog) = 0; virtual HRESULT STDMETHODCALLTYPE Save( IMediaPropertyBag *pPropBag, BOOL fClearDirty, BOOL fSaveAllProperties) = 0; }; #ifdef __CRT_UUID_DECL __CRT_UUID_DECL(IPersistMediaPropertyBag, 0x5738e040, 0xb67f, 0x11d0, 0xbd,0x4d, 0x00,0xa0,0xc9,0x11,0xce,0x86) #endif #else typedef struct IPersistMediaPropertyBagVtbl { BEGIN_INTERFACE /*** IUnknown methods ***/ HRESULT (STDMETHODCALLTYPE *QueryInterface)( IPersistMediaPropertyBag *This, REFIID riid, void **ppvObject); ULONG (STDMETHODCALLTYPE *AddRef)( IPersistMediaPropertyBag *This); ULONG (STDMETHODCALLTYPE *Release)( IPersistMediaPropertyBag *This); /*** IPersist methods ***/ HRESULT (STDMETHODCALLTYPE *GetClassID)( IPersistMediaPropertyBag *This, CLSID *pClassID); /*** IPersistMediaPropertyBag methods ***/ HRESULT (STDMETHODCALLTYPE *InitNew)( IPersistMediaPropertyBag *This); HRESULT (STDMETHODCALLTYPE *Load)( IPersistMediaPropertyBag *This, IMediaPropertyBag *pPropBag, IErrorLog *pErrorLog); HRESULT (STDMETHODCALLTYPE *Save)( IPersistMediaPropertyBag *This, IMediaPropertyBag *pPropBag, BOOL fClearDirty, BOOL fSaveAllProperties); END_INTERFACE } IPersistMediaPropertyBagVtbl; interface IPersistMediaPropertyBag { CONST_VTBL IPersistMediaPropertyBagVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ #define IPersistMediaPropertyBag_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IPersistMediaPropertyBag_AddRef(This) (This)->lpVtbl->AddRef(This) #define IPersistMediaPropertyBag_Release(This) (This)->lpVtbl->Release(This) /*** IPersist methods ***/ #define IPersistMediaPropertyBag_GetClassID(This,pClassID) (This)->lpVtbl->GetClassID(This,pClassID) /*** IPersistMediaPropertyBag methods ***/ #define IPersistMediaPropertyBag_InitNew(This) (This)->lpVtbl->InitNew(This) #define IPersistMediaPropertyBag_Load(This,pPropBag,pErrorLog) (This)->lpVtbl->Load(This,pPropBag,pErrorLog) #define IPersistMediaPropertyBag_Save(This,pPropBag,fClearDirty,fSaveAllProperties) (This)->lpVtbl->Save(This,pPropBag,fClearDirty,fSaveAllProperties) #else /*** IUnknown methods ***/ static inline HRESULT IPersistMediaPropertyBag_QueryInterface(IPersistMediaPropertyBag* This,REFIID riid,void **ppvObject) { return This->lpVtbl->QueryInterface(This,riid,ppvObject); } static inline ULONG IPersistMediaPropertyBag_AddRef(IPersistMediaPropertyBag* This) { return This->lpVtbl->AddRef(This); } static inline ULONG IPersistMediaPropertyBag_Release(IPersistMediaPropertyBag* This) { return This->lpVtbl->Release(This); } /*** IPersist methods ***/ static inline HRESULT IPersistMediaPropertyBag_GetClassID(IPersistMediaPropertyBag* This,CLSID *pClassID) { return This->lpVtbl->GetClassID(This,pClassID); } /*** IPersistMediaPropertyBag methods ***/ static inline HRESULT IPersistMediaPropertyBag_InitNew(IPersistMediaPropertyBag* This) { return This->lpVtbl->InitNew(This); } static inline HRESULT IPersistMediaPropertyBag_Load(IPersistMediaPropertyBag* This,IMediaPropertyBag *pPropBag,IErrorLog *pErrorLog) { return This->lpVtbl->Load(This,pPropBag,pErrorLog); } static inline HRESULT IPersistMediaPropertyBag_Save(IPersistMediaPropertyBag* This,IMediaPropertyBag *pPropBag,BOOL fClearDirty,BOOL fSaveAllProperties) { return This->lpVtbl->Save(This,pPropBag,fClearDirty,fSaveAllProperties); } #endif #endif #endif #endif /* __IPersistMediaPropertyBag_INTERFACE_DEFINED__ */ /***************************************************************************** * ISeekingPassThru interface */ #ifndef __ISeekingPassThru_INTERFACE_DEFINED__ #define __ISeekingPassThru_INTERFACE_DEFINED__ DEFINE_GUID(IID_ISeekingPassThru, 0x36b73883, 0xc2c8, 0x11cf, 0x8b,0x46, 0x00,0x80,0x5f,0x6c,0xef,0x60); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("36b73883-c2c8-11cf-8b46-00805f6cef60") ISeekingPassThru : public IUnknown { virtual HRESULT STDMETHODCALLTYPE Init( BOOL bSupportRendering, IPin *pPin) = 0; }; #ifdef __CRT_UUID_DECL __CRT_UUID_DECL(ISeekingPassThru, 0x36b73883, 0xc2c8, 0x11cf, 0x8b,0x46, 0x00,0x80,0x5f,0x6c,0xef,0x60) #endif #else typedef struct ISeekingPassThruVtbl { BEGIN_INTERFACE /*** IUnknown methods ***/ HRESULT (STDMETHODCALLTYPE *QueryInterface)( ISeekingPassThru *This, REFIID riid, void **ppvObject); ULONG (STDMETHODCALLTYPE *AddRef)( ISeekingPassThru *This); ULONG (STDMETHODCALLTYPE *Release)( ISeekingPassThru *This); /*** ISeekingPassThru methods ***/ HRESULT (STDMETHODCALLTYPE *Init)( ISeekingPassThru *This, BOOL bSupportRendering, IPin *pPin); END_INTERFACE } ISeekingPassThruVtbl; interface ISeekingPassThru { CONST_VTBL ISeekingPassThruVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ #define ISeekingPassThru_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define ISeekingPassThru_AddRef(This) (This)->lpVtbl->AddRef(This) #define ISeekingPassThru_Release(This) (This)->lpVtbl->Release(This) /*** ISeekingPassThru methods ***/ #define ISeekingPassThru_Init(This,bSupportRendering,pPin) (This)->lpVtbl->Init(This,bSupportRendering,pPin) #else /*** IUnknown methods ***/ static inline HRESULT ISeekingPassThru_QueryInterface(ISeekingPassThru* This,REFIID riid,void **ppvObject) { return This->lpVtbl->QueryInterface(This,riid,ppvObject); } static inline ULONG ISeekingPassThru_AddRef(ISeekingPassThru* This) { return This->lpVtbl->AddRef(This); } static inline ULONG ISeekingPassThru_Release(ISeekingPassThru* This) { return This->lpVtbl->Release(This); } /*** ISeekingPassThru methods ***/ static inline HRESULT ISeekingPassThru_Init(ISeekingPassThru* This,BOOL bSupportRendering,IPin *pPin) { return This->lpVtbl->Init(This,bSupportRendering,pPin); } #endif #endif #endif #endif /* __ISeekingPassThru_INTERFACE_DEFINED__ */ enum _AM_FILTER_MISC_FLAGS { AM_FILTER_MISC_FLAGS_IS_RENDERER = 0x1, AM_FILTER_MISC_FLAGS_IS_SOURCE = 0x2 }; /***************************************************************************** * IAMFilterMiscFlags interface */ #ifndef __IAMFilterMiscFlags_INTERFACE_DEFINED__ #define __IAMFilterMiscFlags_INTERFACE_DEFINED__ DEFINE_GUID(IID_IAMFilterMiscFlags, 0x2dd74950, 0xa890, 0x11d1, 0xab,0xe8, 0x00,0xa0,0xc9,0x05,0xf3,0x75); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("2dd74950-a890-11d1-abe8-00a0c905f375") IAMFilterMiscFlags : public IUnknown { virtual ULONG STDMETHODCALLTYPE GetMiscFlags( ) = 0; }; #ifdef __CRT_UUID_DECL __CRT_UUID_DECL(IAMFilterMiscFlags, 0x2dd74950, 0xa890, 0x11d1, 0xab,0xe8, 0x00,0xa0,0xc9,0x05,0xf3,0x75) #endif #else typedef struct IAMFilterMiscFlagsVtbl { BEGIN_INTERFACE /*** IUnknown methods ***/ HRESULT (STDMETHODCALLTYPE *QueryInterface)( IAMFilterMiscFlags *This, REFIID riid, void **ppvObject); ULONG (STDMETHODCALLTYPE *AddRef)( IAMFilterMiscFlags *This); ULONG (STDMETHODCALLTYPE *Release)( IAMFilterMiscFlags *This); /*** IAMFilterMiscFlags methods ***/ ULONG (STDMETHODCALLTYPE *GetMiscFlags)( IAMFilterMiscFlags *This); END_INTERFACE } IAMFilterMiscFlagsVtbl; interface IAMFilterMiscFlags { CONST_VTBL IAMFilterMiscFlagsVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ #define IAMFilterMiscFlags_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IAMFilterMiscFlags_AddRef(This) (This)->lpVtbl->AddRef(This) #define IAMFilterMiscFlags_Release(This) (This)->lpVtbl->Release(This) /*** IAMFilterMiscFlags methods ***/ #define IAMFilterMiscFlags_GetMiscFlags(This) (This)->lpVtbl->GetMiscFlags(This) #else /*** IUnknown methods ***/ static inline HRESULT IAMFilterMiscFlags_QueryInterface(IAMFilterMiscFlags* This,REFIID riid,void **ppvObject) { return This->lpVtbl->QueryInterface(This,riid,ppvObject); } static inline ULONG IAMFilterMiscFlags_AddRef(IAMFilterMiscFlags* This) { return This->lpVtbl->AddRef(This); } static inline ULONG IAMFilterMiscFlags_Release(IAMFilterMiscFlags* This) { return This->lpVtbl->Release(This); } /*** IAMFilterMiscFlags methods ***/ static inline ULONG IAMFilterMiscFlags_GetMiscFlags(IAMFilterMiscFlags* This) { return This->lpVtbl->GetMiscFlags(This); } #endif #endif #endif #endif /* __IAMFilterMiscFlags_INTERFACE_DEFINED__ */ /***************************************************************************** * IAMGraphBuilderCallback interface */ #ifndef __IAMGraphBuilderCallback_INTERFACE_DEFINED__ #define __IAMGraphBuilderCallback_INTERFACE_DEFINED__ DEFINE_GUID(IID_IAMGraphBuilderCallback, 0x4995f511, 0x9ddb, 0x4f12, 0xbd,0x3b, 0xf0,0x46,0x11,0x80,0x7b,0x79); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("4995f511-9ddb-4f12-bd3b-f04611807b79") IAMGraphBuilderCallback : public IUnknown { virtual HRESULT STDMETHODCALLTYPE SelectedFilter( IMoniker *pMon) = 0; virtual HRESULT STDMETHODCALLTYPE CreatedFilter( IBaseFilter *pFil) = 0; }; #ifdef __CRT_UUID_DECL __CRT_UUID_DECL(IAMGraphBuilderCallback, 0x4995f511, 0x9ddb, 0x4f12, 0xbd,0x3b, 0xf0,0x46,0x11,0x80,0x7b,0x79) #endif #else typedef struct IAMGraphBuilderCallbackVtbl { BEGIN_INTERFACE /*** IUnknown methods ***/ HRESULT (STDMETHODCALLTYPE *QueryInterface)( IAMGraphBuilderCallback *This, REFIID riid, void **ppvObject); ULONG (STDMETHODCALLTYPE *AddRef)( IAMGraphBuilderCallback *This); ULONG (STDMETHODCALLTYPE *Release)( IAMGraphBuilderCallback *This); /*** IAMGraphBuilderCallback methods ***/ HRESULT (STDMETHODCALLTYPE *SelectedFilter)( IAMGraphBuilderCallback *This, IMoniker *pMon); HRESULT (STDMETHODCALLTYPE *CreatedFilter)( IAMGraphBuilderCallback *This, IBaseFilter *pFil); END_INTERFACE } IAMGraphBuilderCallbackVtbl; interface IAMGraphBuilderCallback { CONST_VTBL IAMGraphBuilderCallbackVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ #define IAMGraphBuilderCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IAMGraphBuilderCallback_AddRef(This) (This)->lpVtbl->AddRef(This) #define IAMGraphBuilderCallback_Release(This) (This)->lpVtbl->Release(This) /*** IAMGraphBuilderCallback methods ***/ #define IAMGraphBuilderCallback_SelectedFilter(This,pMon) (This)->lpVtbl->SelectedFilter(This,pMon) #define IAMGraphBuilderCallback_CreatedFilter(This,pFil) (This)->lpVtbl->CreatedFilter(This,pFil) #else /*** IUnknown methods ***/ static inline HRESULT IAMGraphBuilderCallback_QueryInterface(IAMGraphBuilderCallback* This,REFIID riid,void **ppvObject) { return This->lpVtbl->QueryInterface(This,riid,ppvObject); } static inline ULONG IAMGraphBuilderCallback_AddRef(IAMGraphBuilderCallback* This) { return This->lpVtbl->AddRef(This); } static inline ULONG IAMGraphBuilderCallback_Release(IAMGraphBuilderCallback* This) { return This->lpVtbl->Release(This); } /*** IAMGraphBuilderCallback methods ***/ static inline HRESULT IAMGraphBuilderCallback_SelectedFilter(IAMGraphBuilderCallback* This,IMoniker *pMon) { return This->lpVtbl->SelectedFilter(This,pMon); } static inline HRESULT IAMGraphBuilderCallback_CreatedFilter(IAMGraphBuilderCallback* This,IBaseFilter *pFil) { return This->lpVtbl->CreatedFilter(This,pFil); } #endif #endif #endif #endif /* __IAMGraphBuilderCallback_INTERFACE_DEFINED__ */ /***************************************************************************** * IAMVfwCaptureDialogs interface */ #ifndef __IAMVfwCaptureDialogs_INTERFACE_DEFINED__ #define __IAMVfwCaptureDialogs_INTERFACE_DEFINED__ DEFINE_GUID(IID_IAMVfwCaptureDialogs, 0xd8d715a0, 0x6e5e, 0x11d0, 0xb3,0xf0, 0x00,0xaa,0x00,0x37,0x61,0xc5); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("d8d715a0-6e5e-11d0-b3f0-00aa003761c5") IAMVfwCaptureDialogs : public IUnknown { virtual HRESULT STDMETHODCALLTYPE HasDialog( int dialog) = 0; virtual HRESULT STDMETHODCALLTYPE ShowDialog( int dialog, HWND hwnd) = 0; virtual HRESULT STDMETHODCALLTYPE SendDriverMessage( int dialog, int msg, LONG data1, LONG data2) = 0; }; #ifdef __CRT_UUID_DECL __CRT_UUID_DECL(IAMVfwCaptureDialogs, 0xd8d715a0, 0x6e5e, 0x11d0, 0xb3,0xf0, 0x00,0xaa,0x00,0x37,0x61,0xc5) #endif #else typedef struct IAMVfwCaptureDialogsVtbl { BEGIN_INTERFACE /*** IUnknown methods ***/ HRESULT (STDMETHODCALLTYPE *QueryInterface)( IAMVfwCaptureDialogs *This, REFIID riid, void **ppvObject); ULONG (STDMETHODCALLTYPE *AddRef)( IAMVfwCaptureDialogs *This); ULONG (STDMETHODCALLTYPE *Release)( IAMVfwCaptureDialogs *This); /*** IAMVfwCaptureDialogs methods ***/ HRESULT (STDMETHODCALLTYPE *HasDialog)( IAMVfwCaptureDialogs *This, int dialog); HRESULT (STDMETHODCALLTYPE *ShowDialog)( IAMVfwCaptureDialogs *This, int dialog, HWND hwnd); HRESULT (STDMETHODCALLTYPE *SendDriverMessage)( IAMVfwCaptureDialogs *This, int dialog, int msg, LONG data1, LONG data2); END_INTERFACE } IAMVfwCaptureDialogsVtbl; interface IAMVfwCaptureDialogs { CONST_VTBL IAMVfwCaptureDialogsVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ #define IAMVfwCaptureDialogs_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IAMVfwCaptureDialogs_AddRef(This) (This)->lpVtbl->AddRef(This) #define IAMVfwCaptureDialogs_Release(This) (This)->lpVtbl->Release(This) /*** IAMVfwCaptureDialogs methods ***/ #define IAMVfwCaptureDialogs_HasDialog(This,dialog) (This)->lpVtbl->HasDialog(This,dialog) #define IAMVfwCaptureDialogs_ShowDialog(This,dialog,hwnd) (This)->lpVtbl->ShowDialog(This,dialog,hwnd) #define IAMVfwCaptureDialogs_SendDriverMessage(This,dialog,msg,data1,data2) (This)->lpVtbl->SendDriverMessage(This,dialog,msg,data1,data2) #else /*** IUnknown methods ***/ static inline HRESULT IAMVfwCaptureDialogs_QueryInterface(IAMVfwCaptureDialogs* This,REFIID riid,void **ppvObject) { return This->lpVtbl->QueryInterface(This,riid,ppvObject); } static inline ULONG IAMVfwCaptureDialogs_AddRef(IAMVfwCaptureDialogs* This) { return This->lpVtbl->AddRef(This); } static inline ULONG IAMVfwCaptureDialogs_Release(IAMVfwCaptureDialogs* This) { return This->lpVtbl->Release(This); } /*** IAMVfwCaptureDialogs methods ***/ static inline HRESULT IAMVfwCaptureDialogs_HasDialog(IAMVfwCaptureDialogs* This,int dialog) { return This->lpVtbl->HasDialog(This,dialog); } static inline HRESULT IAMVfwCaptureDialogs_ShowDialog(IAMVfwCaptureDialogs* This,int dialog,HWND hwnd) { return This->lpVtbl->ShowDialog(This,dialog,hwnd); } static inline HRESULT IAMVfwCaptureDialogs_SendDriverMessage(IAMVfwCaptureDialogs* This,int dialog,int msg,LONG data1,LONG data2) { return This->lpVtbl->SendDriverMessage(This,dialog,msg,data1,data2); } #endif #endif #endif #endif /* __IAMVfwCaptureDialogs_INTERFACE_DEFINED__ */ /***************************************************************************** * IAMCameraControl interface */ #ifndef __IAMCameraControl_INTERFACE_DEFINED__ #define __IAMCameraControl_INTERFACE_DEFINED__ DEFINE_GUID(IID_IAMCameraControl, 0xc6e13370, 0x30ac, 0x11d0, 0xa1,0x8c, 0x00,0xa0,0xc9,0x11,0x89,0x56); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("c6e13370-30ac-11d0-a18c-00a0c9118956") IAMCameraControl : public IUnknown { virtual HRESULT STDMETHODCALLTYPE GetRange( LONG property, LONG *min, LONG *max, LONG *stepping_delta, LONG *default_value, LONG *flags) = 0; virtual HRESULT STDMETHODCALLTYPE Set( LONG property, LONG property_value, LONG flags) = 0; virtual HRESULT STDMETHODCALLTYPE Get( LONG property, LONG *property_value, LONG *flags) = 0; }; #ifdef __CRT_UUID_DECL __CRT_UUID_DECL(IAMCameraControl, 0xc6e13370, 0x30ac, 0x11d0, 0xa1,0x8c, 0x00,0xa0,0xc9,0x11,0x89,0x56) #endif #else typedef struct IAMCameraControlVtbl { BEGIN_INTERFACE /*** IUnknown methods ***/ HRESULT (STDMETHODCALLTYPE *QueryInterface)( IAMCameraControl *This, REFIID riid, void **ppvObject); ULONG (STDMETHODCALLTYPE *AddRef)( IAMCameraControl *This); ULONG (STDMETHODCALLTYPE *Release)( IAMCameraControl *This); /*** IAMCameraControl methods ***/ HRESULT (STDMETHODCALLTYPE *GetRange)( IAMCameraControl *This, LONG property, LONG *min, LONG *max, LONG *stepping_delta, LONG *default_value, LONG *flags); HRESULT (STDMETHODCALLTYPE *Set)( IAMCameraControl *This, LONG property, LONG property_value, LONG flags); HRESULT (STDMETHODCALLTYPE *Get)( IAMCameraControl *This, LONG property, LONG *property_value, LONG *flags); END_INTERFACE } IAMCameraControlVtbl; interface IAMCameraControl { CONST_VTBL IAMCameraControlVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ #define IAMCameraControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IAMCameraControl_AddRef(This) (This)->lpVtbl->AddRef(This) #define IAMCameraControl_Release(This) (This)->lpVtbl->Release(This) /*** IAMCameraControl methods ***/ #define IAMCameraControl_GetRange(This,property,min,max,stepping_delta,default_value,flags) (This)->lpVtbl->GetRange(This,property,min,max,stepping_delta,default_value,flags) #define IAMCameraControl_Set(This,property,property_value,flags) (This)->lpVtbl->Set(This,property,property_value,flags) #define IAMCameraControl_Get(This,property,property_value,flags) (This)->lpVtbl->Get(This,property,property_value,flags) #else /*** IUnknown methods ***/ static inline HRESULT IAMCameraControl_QueryInterface(IAMCameraControl* This,REFIID riid,void **ppvObject) { return This->lpVtbl->QueryInterface(This,riid,ppvObject); } static inline ULONG IAMCameraControl_AddRef(IAMCameraControl* This) { return This->lpVtbl->AddRef(This); } static inline ULONG IAMCameraControl_Release(IAMCameraControl* This) { return This->lpVtbl->Release(This); } /*** IAMCameraControl methods ***/ static inline HRESULT IAMCameraControl_GetRange(IAMCameraControl* This,LONG property,LONG *min,LONG *max,LONG *stepping_delta,LONG *default_value,LONG *flags) { return This->lpVtbl->GetRange(This,property,min,max,stepping_delta,default_value,flags); } static inline HRESULT IAMCameraControl_Set(IAMCameraControl* This,LONG property,LONG property_value,LONG flags) { return This->lpVtbl->Set(This,property,property_value,flags); } static inline HRESULT IAMCameraControl_Get(IAMCameraControl* This,LONG property,LONG *property_value,LONG *flags) { return This->lpVtbl->Get(This,property,property_value,flags); } #endif #endif #endif #endif /* __IAMCameraControl_INTERFACE_DEFINED__ */ /***************************************************************************** * IAMVideoControl interface */ #ifndef __IAMVideoControl_INTERFACE_DEFINED__ #define __IAMVideoControl_INTERFACE_DEFINED__ DEFINE_GUID(IID_IAMVideoControl, 0x6a2e0670, 0x28e4, 0x11d0, 0xa1,0x8c, 0x00,0xa0,0xc9,0x11,0x89,0x56); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("6a2e0670-28e4-11d0-a18c-00a0c9118956") IAMVideoControl : public IUnknown { virtual HRESULT STDMETHODCALLTYPE GetCaps( IPin *pin, LONG *flags) = 0; virtual HRESULT STDMETHODCALLTYPE SetMode( IPin *pin, LONG mode) = 0; virtual HRESULT STDMETHODCALLTYPE GetMode( IPin *pin, LONG *mode) = 0; virtual HRESULT STDMETHODCALLTYPE GetCurrentActualFrameRate( IPin *pin, LONGLONG *frame_rate) = 0; virtual HRESULT STDMETHODCALLTYPE GetMaxAvailableFrameRate( IPin *pin, LONG index, SIZE dimensions, LONGLONG *frame_rate) = 0; virtual HRESULT STDMETHODCALLTYPE GetFrameRateList( IPin *pin, LONG index, SIZE dimensions, LONG *list_size, LONGLONG **frame_rate) = 0; }; #ifdef __CRT_UUID_DECL __CRT_UUID_DECL(IAMVideoControl, 0x6a2e0670, 0x28e4, 0x11d0, 0xa1,0x8c, 0x00,0xa0,0xc9,0x11,0x89,0x56) #endif #else typedef struct IAMVideoControlVtbl { BEGIN_INTERFACE /*** IUnknown methods ***/ HRESULT (STDMETHODCALLTYPE *QueryInterface)( IAMVideoControl *This, REFIID riid, void **ppvObject); ULONG (STDMETHODCALLTYPE *AddRef)( IAMVideoControl *This); ULONG (STDMETHODCALLTYPE *Release)( IAMVideoControl *This); /*** IAMVideoControl methods ***/ HRESULT (STDMETHODCALLTYPE *GetCaps)( IAMVideoControl *This, IPin *pin, LONG *flags); HRESULT (STDMETHODCALLTYPE *SetMode)( IAMVideoControl *This, IPin *pin, LONG mode); HRESULT (STDMETHODCALLTYPE *GetMode)( IAMVideoControl *This, IPin *pin, LONG *mode); HRESULT (STDMETHODCALLTYPE *GetCurrentActualFrameRate)( IAMVideoControl *This, IPin *pin, LONGLONG *frame_rate); HRESULT (STDMETHODCALLTYPE *GetMaxAvailableFrameRate)( IAMVideoControl *This, IPin *pin, LONG index, SIZE dimensions, LONGLONG *frame_rate); HRESULT (STDMETHODCALLTYPE *GetFrameRateList)( IAMVideoControl *This, IPin *pin, LONG index, SIZE dimensions, LONG *list_size, LONGLONG **frame_rate); END_INTERFACE } IAMVideoControlVtbl; interface IAMVideoControl { CONST_VTBL IAMVideoControlVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ #define IAMVideoControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IAMVideoControl_AddRef(This) (This)->lpVtbl->AddRef(This) #define IAMVideoControl_Release(This) (This)->lpVtbl->Release(This) /*** IAMVideoControl methods ***/ #define IAMVideoControl_GetCaps(This,pin,flags) (This)->lpVtbl->GetCaps(This,pin,flags) #define IAMVideoControl_SetMode(This,pin,mode) (This)->lpVtbl->SetMode(This,pin,mode) #define IAMVideoControl_GetMode(This,pin,mode) (This)->lpVtbl->GetMode(This,pin,mode) #define IAMVideoControl_GetCurrentActualFrameRate(This,pin,frame_rate) (This)->lpVtbl->GetCurrentActualFrameRate(This,pin,frame_rate) #define IAMVideoControl_GetMaxAvailableFrameRate(This,pin,index,dimensions,frame_rate) (This)->lpVtbl->GetMaxAvailableFrameRate(This,pin,index,dimensions,frame_rate) #define IAMVideoControl_GetFrameRateList(This,pin,index,dimensions,list_size,frame_rate) (This)->lpVtbl->GetFrameRateList(This,pin,index,dimensions,list_size,frame_rate) #else /*** IUnknown methods ***/ static inline HRESULT IAMVideoControl_QueryInterface(IAMVideoControl* This,REFIID riid,void **ppvObject) { return This->lpVtbl->QueryInterface(This,riid,ppvObject); } static inline ULONG IAMVideoControl_AddRef(IAMVideoControl* This) { return This->lpVtbl->AddRef(This); } static inline ULONG IAMVideoControl_Release(IAMVideoControl* This) { return This->lpVtbl->Release(This); } /*** IAMVideoControl methods ***/ static inline HRESULT IAMVideoControl_GetCaps(IAMVideoControl* This,IPin *pin,LONG *flags) { return This->lpVtbl->GetCaps(This,pin,flags); } static inline HRESULT IAMVideoControl_SetMode(IAMVideoControl* This,IPin *pin,LONG mode) { return This->lpVtbl->SetMode(This,pin,mode); } static inline HRESULT IAMVideoControl_GetMode(IAMVideoControl* This,IPin *pin,LONG *mode) { return This->lpVtbl->GetMode(This,pin,mode); } static inline HRESULT IAMVideoControl_GetCurrentActualFrameRate(IAMVideoControl* This,IPin *pin,LONGLONG *frame_rate) { return This->lpVtbl->GetCurrentActualFrameRate(This,pin,frame_rate); } static inline HRESULT IAMVideoControl_GetMaxAvailableFrameRate(IAMVideoControl* This,IPin *pin,LONG index,SIZE dimensions,LONGLONG *frame_rate) { return This->lpVtbl->GetMaxAvailableFrameRate(This,pin,index,dimensions,frame_rate); } static inline HRESULT IAMVideoControl_GetFrameRateList(IAMVideoControl* This,IPin *pin,LONG index,SIZE dimensions,LONG *list_size,LONGLONG **frame_rate) { return This->lpVtbl->GetFrameRateList(This,pin,index,dimensions,list_size,frame_rate); } #endif #endif #endif #endif /* __IAMVideoControl_INTERFACE_DEFINED__ */ /***************************************************************************** * IAMBufferNegotiation interface */ #ifndef __IAMBufferNegotiation_INTERFACE_DEFINED__ #define __IAMBufferNegotiation_INTERFACE_DEFINED__ DEFINE_GUID(IID_IAMBufferNegotiation, 0x56ed71a0, 0xaf5f, 0x11d0, 0xb3,0xf0, 0x00,0xaa,0x00,0x37,0x61,0xc5); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("56ed71a0-af5f-11d0-b3f0-00aa003761c5") IAMBufferNegotiation : public IUnknown { virtual HRESULT STDMETHODCALLTYPE SuggestAllocatorProperties( const ALLOCATOR_PROPERTIES *prop) = 0; virtual HRESULT STDMETHODCALLTYPE GetAllocatorProperties( ALLOCATOR_PROPERTIES *prop) = 0; }; #ifdef __CRT_UUID_DECL __CRT_UUID_DECL(IAMBufferNegotiation, 0x56ed71a0, 0xaf5f, 0x11d0, 0xb3,0xf0, 0x00,0xaa,0x00,0x37,0x61,0xc5) #endif #else typedef struct IAMBufferNegotiationVtbl { BEGIN_INTERFACE /*** IUnknown methods ***/ HRESULT (STDMETHODCALLTYPE *QueryInterface)( IAMBufferNegotiation *This, REFIID riid, void **ppvObject); ULONG (STDMETHODCALLTYPE *AddRef)( IAMBufferNegotiation *This); ULONG (STDMETHODCALLTYPE *Release)( IAMBufferNegotiation *This); /*** IAMBufferNegotiation methods ***/ HRESULT (STDMETHODCALLTYPE *SuggestAllocatorProperties)( IAMBufferNegotiation *This, const ALLOCATOR_PROPERTIES *prop); HRESULT (STDMETHODCALLTYPE *GetAllocatorProperties)( IAMBufferNegotiation *This, ALLOCATOR_PROPERTIES *prop); END_INTERFACE } IAMBufferNegotiationVtbl; interface IAMBufferNegotiation { CONST_VTBL IAMBufferNegotiationVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ #define IAMBufferNegotiation_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IAMBufferNegotiation_AddRef(This) (This)->lpVtbl->AddRef(This) #define IAMBufferNegotiation_Release(This) (This)->lpVtbl->Release(This) /*** IAMBufferNegotiation methods ***/ #define IAMBufferNegotiation_SuggestAllocatorProperties(This,prop) (This)->lpVtbl->SuggestAllocatorProperties(This,prop) #define IAMBufferNegotiation_GetAllocatorProperties(This,prop) (This)->lpVtbl->GetAllocatorProperties(This,prop) #else /*** IUnknown methods ***/ static inline HRESULT IAMBufferNegotiation_QueryInterface(IAMBufferNegotiation* This,REFIID riid,void **ppvObject) { return This->lpVtbl->QueryInterface(This,riid,ppvObject); } static inline ULONG IAMBufferNegotiation_AddRef(IAMBufferNegotiation* This) { return This->lpVtbl->AddRef(This); } static inline ULONG IAMBufferNegotiation_Release(IAMBufferNegotiation* This) { return This->lpVtbl->Release(This); } /*** IAMBufferNegotiation methods ***/ static inline HRESULT IAMBufferNegotiation_SuggestAllocatorProperties(IAMBufferNegotiation* This,const ALLOCATOR_PROPERTIES *prop) { return This->lpVtbl->SuggestAllocatorProperties(This,prop); } static inline HRESULT IAMBufferNegotiation_GetAllocatorProperties(IAMBufferNegotiation* This,ALLOCATOR_PROPERTIES *prop) { return This->lpVtbl->GetAllocatorProperties(This,prop); } #endif #endif #endif #endif /* __IAMBufferNegotiation_INTERFACE_DEFINED__ */ /***************************************************************************** * IAMDroppedFrames interface */ #ifndef __IAMDroppedFrames_INTERFACE_DEFINED__ #define __IAMDroppedFrames_INTERFACE_DEFINED__ DEFINE_GUID(IID_IAMDroppedFrames, 0xc6e13344, 0x30ac, 0x11d0, 0xa1,0x8c, 0x00,0xa0,0xc9,0x11,0x89,0x56); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("c6e13344-30ac-11d0-a18c-00a0c9118956") IAMDroppedFrames : public IUnknown { virtual HRESULT STDMETHODCALLTYPE GetNumDropped( LONG *number) = 0; virtual HRESULT STDMETHODCALLTYPE GetNumNotDropped( LONG *number) = 0; virtual HRESULT STDMETHODCALLTYPE GetDroppedInfo( LONG size, LONG *array, LONG *copied) = 0; virtual HRESULT STDMETHODCALLTYPE GetAverageFrameSize( LONG *size) = 0; }; #ifdef __CRT_UUID_DECL __CRT_UUID_DECL(IAMDroppedFrames, 0xc6e13344, 0x30ac, 0x11d0, 0xa1,0x8c, 0x00,0xa0,0xc9,0x11,0x89,0x56) #endif #else typedef struct IAMDroppedFramesVtbl { BEGIN_INTERFACE /*** IUnknown methods ***/ HRESULT (STDMETHODCALLTYPE *QueryInterface)( IAMDroppedFrames *This, REFIID riid, void **ppvObject); ULONG (STDMETHODCALLTYPE *AddRef)( IAMDroppedFrames *This); ULONG (STDMETHODCALLTYPE *Release)( IAMDroppedFrames *This); /*** IAMDroppedFrames methods ***/ HRESULT (STDMETHODCALLTYPE *GetNumDropped)( IAMDroppedFrames *This, LONG *number); HRESULT (STDMETHODCALLTYPE *GetNumNotDropped)( IAMDroppedFrames *This, LONG *number); HRESULT (STDMETHODCALLTYPE *GetDroppedInfo)( IAMDroppedFrames *This, LONG size, LONG *array, LONG *copied); HRESULT (STDMETHODCALLTYPE *GetAverageFrameSize)( IAMDroppedFrames *This, LONG *size); END_INTERFACE } IAMDroppedFramesVtbl; interface IAMDroppedFrames { CONST_VTBL IAMDroppedFramesVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ #define IAMDroppedFrames_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IAMDroppedFrames_AddRef(This) (This)->lpVtbl->AddRef(This) #define IAMDroppedFrames_Release(This) (This)->lpVtbl->Release(This) /*** IAMDroppedFrames methods ***/ #define IAMDroppedFrames_GetNumDropped(This,number) (This)->lpVtbl->GetNumDropped(This,number) #define IAMDroppedFrames_GetNumNotDropped(This,number) (This)->lpVtbl->GetNumNotDropped(This,number) #define IAMDroppedFrames_GetDroppedInfo(This,size,array,copied) (This)->lpVtbl->GetDroppedInfo(This,size,array,copied) #define IAMDroppedFrames_GetAverageFrameSize(This,size) (This)->lpVtbl->GetAverageFrameSize(This,size) #else /*** IUnknown methods ***/ static inline HRESULT IAMDroppedFrames_QueryInterface(IAMDroppedFrames* This,REFIID riid,void **ppvObject) { return This->lpVtbl->QueryInterface(This,riid,ppvObject); } static inline ULONG IAMDroppedFrames_AddRef(IAMDroppedFrames* This) { return This->lpVtbl->AddRef(This); } static inline ULONG IAMDroppedFrames_Release(IAMDroppedFrames* This) { return This->lpVtbl->Release(This); } /*** IAMDroppedFrames methods ***/ static inline HRESULT IAMDroppedFrames_GetNumDropped(IAMDroppedFrames* This,LONG *number) { return This->lpVtbl->GetNumDropped(This,number); } static inline HRESULT IAMDroppedFrames_GetNumNotDropped(IAMDroppedFrames* This,LONG *number) { return This->lpVtbl->GetNumNotDropped(This,number); } static inline HRESULT IAMDroppedFrames_GetDroppedInfo(IAMDroppedFrames* This,LONG size,LONG *array,LONG *copied) { return This->lpVtbl->GetDroppedInfo(This,size,array,copied); } static inline HRESULT IAMDroppedFrames_GetAverageFrameSize(IAMDroppedFrames* This,LONG *size) { return This->lpVtbl->GetAverageFrameSize(This,size); } #endif #endif #endif #endif /* __IAMDroppedFrames_INTERFACE_DEFINED__ */ /***************************************************************************** * IAMLatency interface */ #ifndef __IAMLatency_INTERFACE_DEFINED__ #define __IAMLatency_INTERFACE_DEFINED__ DEFINE_GUID(IID_IAMLatency, 0x62ea93ba, 0xec62, 0x11d2, 0xb7,0x70, 0x00,0xc0,0x4f,0xb6,0xbd,0x3d); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("62ea93ba-ec62-11d2-b770-00c04fb6bd3d") IAMLatency : public IUnknown { virtual HRESULT STDMETHODCALLTYPE GetLatency( REFERENCE_TIME *latency) = 0; }; #ifdef __CRT_UUID_DECL __CRT_UUID_DECL(IAMLatency, 0x62ea93ba, 0xec62, 0x11d2, 0xb7,0x70, 0x00,0xc0,0x4f,0xb6,0xbd,0x3d) #endif #else typedef struct IAMLatencyVtbl { BEGIN_INTERFACE /*** IUnknown methods ***/ HRESULT (STDMETHODCALLTYPE *QueryInterface)( IAMLatency *This, REFIID riid, void **ppvObject); ULONG (STDMETHODCALLTYPE *AddRef)( IAMLatency *This); ULONG (STDMETHODCALLTYPE *Release)( IAMLatency *This); /*** IAMLatency methods ***/ HRESULT (STDMETHODCALLTYPE *GetLatency)( IAMLatency *This, REFERENCE_TIME *latency); END_INTERFACE } IAMLatencyVtbl; interface IAMLatency { CONST_VTBL IAMLatencyVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ #define IAMLatency_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IAMLatency_AddRef(This) (This)->lpVtbl->AddRef(This) #define IAMLatency_Release(This) (This)->lpVtbl->Release(This) /*** IAMLatency methods ***/ #define IAMLatency_GetLatency(This,latency) (This)->lpVtbl->GetLatency(This,latency) #else /*** IUnknown methods ***/ static inline HRESULT IAMLatency_QueryInterface(IAMLatency* This,REFIID riid,void **ppvObject) { return This->lpVtbl->QueryInterface(This,riid,ppvObject); } static inline ULONG IAMLatency_AddRef(IAMLatency* This) { return This->lpVtbl->AddRef(This); } static inline ULONG IAMLatency_Release(IAMLatency* This) { return This->lpVtbl->Release(This); } /*** IAMLatency methods ***/ static inline HRESULT IAMLatency_GetLatency(IAMLatency* This,REFERENCE_TIME *latency) { return This->lpVtbl->GetLatency(This,latency); } #endif #endif #endif #endif /* __IAMLatency_INTERFACE_DEFINED__ */ /***************************************************************************** * IAMPushSource interface */ #ifndef __IAMPushSource_INTERFACE_DEFINED__ #define __IAMPushSource_INTERFACE_DEFINED__ DEFINE_GUID(IID_IAMPushSource, 0xf185fe76, 0xe64e, 0x11d2, 0xb7,0x6e, 0x00,0xc0,0x4f,0xb6,0xbd,0x3d); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("f185fe76-e64e-11d2-b76e-00c04fb6bd3d") IAMPushSource : public IAMLatency { virtual HRESULT STDMETHODCALLTYPE GetPushSourceFlags( ULONG *flags) = 0; virtual HRESULT STDMETHODCALLTYPE SetPushSourceFlags( ULONG flags) = 0; virtual HRESULT STDMETHODCALLTYPE SetStreamOffset( REFERENCE_TIME offset) = 0; virtual HRESULT STDMETHODCALLTYPE GetStreamOffset( REFERENCE_TIME *offset) = 0; virtual HRESULT STDMETHODCALLTYPE GetMaxStreamOffset( REFERENCE_TIME *offset) = 0; virtual HRESULT STDMETHODCALLTYPE SetMaxStreamOffset( REFERENCE_TIME offset) = 0; }; #ifdef __CRT_UUID_DECL __CRT_UUID_DECL(IAMPushSource, 0xf185fe76, 0xe64e, 0x11d2, 0xb7,0x6e, 0x00,0xc0,0x4f,0xb6,0xbd,0x3d) #endif #else typedef struct IAMPushSourceVtbl { BEGIN_INTERFACE /*** IUnknown methods ***/ HRESULT (STDMETHODCALLTYPE *QueryInterface)( IAMPushSource *This, REFIID riid, void **ppvObject); ULONG (STDMETHODCALLTYPE *AddRef)( IAMPushSource *This); ULONG (STDMETHODCALLTYPE *Release)( IAMPushSource *This); /*** IAMLatency methods ***/ HRESULT (STDMETHODCALLTYPE *GetLatency)( IAMPushSource *This, REFERENCE_TIME *latency); /*** IAMPushSource methods ***/ HRESULT (STDMETHODCALLTYPE *GetPushSourceFlags)( IAMPushSource *This, ULONG *flags); HRESULT (STDMETHODCALLTYPE *SetPushSourceFlags)( IAMPushSource *This, ULONG flags); HRESULT (STDMETHODCALLTYPE *SetStreamOffset)( IAMPushSource *This, REFERENCE_TIME offset); HRESULT (STDMETHODCALLTYPE *GetStreamOffset)( IAMPushSource *This, REFERENCE_TIME *offset); HRESULT (STDMETHODCALLTYPE *GetMaxStreamOffset)( IAMPushSource *This, REFERENCE_TIME *offset); HRESULT (STDMETHODCALLTYPE *SetMaxStreamOffset)( IAMPushSource *This, REFERENCE_TIME offset); END_INTERFACE } IAMPushSourceVtbl; interface IAMPushSource { CONST_VTBL IAMPushSourceVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ #define IAMPushSource_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IAMPushSource_AddRef(This) (This)->lpVtbl->AddRef(This) #define IAMPushSource_Release(This) (This)->lpVtbl->Release(This) /*** IAMLatency methods ***/ #define IAMPushSource_GetLatency(This,latency) (This)->lpVtbl->GetLatency(This,latency) /*** IAMPushSource methods ***/ #define IAMPushSource_GetPushSourceFlags(This,flags) (This)->lpVtbl->GetPushSourceFlags(This,flags) #define IAMPushSource_SetPushSourceFlags(This,flags) (This)->lpVtbl->SetPushSourceFlags(This,flags) #define IAMPushSource_SetStreamOffset(This,offset) (This)->lpVtbl->SetStreamOffset(This,offset) #define IAMPushSource_GetStreamOffset(This,offset) (This)->lpVtbl->GetStreamOffset(This,offset) #define IAMPushSource_GetMaxStreamOffset(This,offset) (This)->lpVtbl->GetMaxStreamOffset(This,offset) #define IAMPushSource_SetMaxStreamOffset(This,offset) (This)->lpVtbl->SetMaxStreamOffset(This,offset) #else /*** IUnknown methods ***/ static inline HRESULT IAMPushSource_QueryInterface(IAMPushSource* This,REFIID riid,void **ppvObject) { return This->lpVtbl->QueryInterface(This,riid,ppvObject); } static inline ULONG IAMPushSource_AddRef(IAMPushSource* This) { return This->lpVtbl->AddRef(This); } static inline ULONG IAMPushSource_Release(IAMPushSource* This) { return This->lpVtbl->Release(This); } /*** IAMLatency methods ***/ static inline HRESULT IAMPushSource_GetLatency(IAMPushSource* This,REFERENCE_TIME *latency) { return This->lpVtbl->GetLatency(This,latency); } /*** IAMPushSource methods ***/ static inline HRESULT IAMPushSource_GetPushSourceFlags(IAMPushSource* This,ULONG *flags) { return This->lpVtbl->GetPushSourceFlags(This,flags); } static inline HRESULT IAMPushSource_SetPushSourceFlags(IAMPushSource* This,ULONG flags) { return This->lpVtbl->SetPushSourceFlags(This,flags); } static inline HRESULT IAMPushSource_SetStreamOffset(IAMPushSource* This,REFERENCE_TIME offset) { return This->lpVtbl->SetStreamOffset(This,offset); } static inline HRESULT IAMPushSource_GetStreamOffset(IAMPushSource* This,REFERENCE_TIME *offset) { return This->lpVtbl->GetStreamOffset(This,offset); } static inline HRESULT IAMPushSource_GetMaxStreamOffset(IAMPushSource* This,REFERENCE_TIME *offset) { return This->lpVtbl->GetMaxStreamOffset(This,offset); } static inline HRESULT IAMPushSource_SetMaxStreamOffset(IAMPushSource* This,REFERENCE_TIME offset) { return This->lpVtbl->SetMaxStreamOffset(This,offset); } #endif #endif #endif #endif /* __IAMPushSource_INTERFACE_DEFINED__ */ /***************************************************************************** * IAMVideoCompression interface */ #ifndef __IAMVideoCompression_INTERFACE_DEFINED__ #define __IAMVideoCompression_INTERFACE_DEFINED__ DEFINE_GUID(IID_IAMVideoCompression, 0xc6e13343, 0x30ac, 0x11d0, 0xa1,0x8c, 0x00,0xa0,0xc9,0x11,0x89,0x56); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("c6e13343-30ac-11d0-a18c-00a0c9118956") IAMVideoCompression : public IUnknown { virtual HRESULT STDMETHODCALLTYPE put_KeyFrameRate( LONG frame_rate) = 0; virtual HRESULT STDMETHODCALLTYPE get_KeyFrameRate( LONG *frame_rate) = 0; virtual HRESULT STDMETHODCALLTYPE put_PFramesPerKeyFrame( LONG frame) = 0; virtual HRESULT STDMETHODCALLTYPE get_PFramesPerKeyFrame( LONG *frame) = 0; virtual HRESULT STDMETHODCALLTYPE put_Quality( double quality) = 0; virtual HRESULT STDMETHODCALLTYPE get_Quality( double *quality) = 0; virtual HRESULT STDMETHODCALLTYPE put_WindowSize( DWORDLONG size) = 0; virtual HRESULT STDMETHODCALLTYPE get_WindowSize( DWORDLONG *size) = 0; virtual HRESULT STDMETHODCALLTYPE GetInfo( LPWSTR version, int *version_size, LPWSTR description, int *description_size, LONG *frame_rate, LONG *key, double *quality, LONG *capabilities) = 0; virtual HRESULT STDMETHODCALLTYPE OverrideKeyFrame( LONG number) = 0; virtual HRESULT STDMETHODCALLTYPE OverrideFrameSize( LONG number, LONG size) = 0; }; #ifdef __CRT_UUID_DECL __CRT_UUID_DECL(IAMVideoCompression, 0xc6e13343, 0x30ac, 0x11d0, 0xa1,0x8c, 0x00,0xa0,0xc9,0x11,0x89,0x56) #endif #else typedef struct IAMVideoCompressionVtbl { BEGIN_INTERFACE /*** IUnknown methods ***/ HRESULT (STDMETHODCALLTYPE *QueryInterface)( IAMVideoCompression *This, REFIID riid, void **ppvObject); ULONG (STDMETHODCALLTYPE *AddRef)( IAMVideoCompression *This); ULONG (STDMETHODCALLTYPE *Release)( IAMVideoCompression *This); /*** IAMVideoCompression methods ***/ HRESULT (STDMETHODCALLTYPE *put_KeyFrameRate)( IAMVideoCompression *This, LONG frame_rate); HRESULT (STDMETHODCALLTYPE *get_KeyFrameRate)( IAMVideoCompression *This, LONG *frame_rate); HRESULT (STDMETHODCALLTYPE *put_PFramesPerKeyFrame)( IAMVideoCompression *This, LONG frame); HRESULT (STDMETHODCALLTYPE *get_PFramesPerKeyFrame)( IAMVideoCompression *This, LONG *frame); HRESULT (STDMETHODCALLTYPE *put_Quality)( IAMVideoCompression *This, double quality); HRESULT (STDMETHODCALLTYPE *get_Quality)( IAMVideoCompression *This, double *quality); HRESULT (STDMETHODCALLTYPE *put_WindowSize)( IAMVideoCompression *This, DWORDLONG size); HRESULT (STDMETHODCALLTYPE *get_WindowSize)( IAMVideoCompression *This, DWORDLONG *size); HRESULT (STDMETHODCALLTYPE *GetInfo)( IAMVideoCompression *This, LPWSTR version, int *version_size, LPWSTR description, int *description_size, LONG *frame_rate, LONG *key, double *quality, LONG *capabilities); HRESULT (STDMETHODCALLTYPE *OverrideKeyFrame)( IAMVideoCompression *This, LONG number); HRESULT (STDMETHODCALLTYPE *OverrideFrameSize)( IAMVideoCompression *This, LONG number, LONG size); END_INTERFACE } IAMVideoCompressionVtbl; interface IAMVideoCompression { CONST_VTBL IAMVideoCompressionVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ #define IAMVideoCompression_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IAMVideoCompression_AddRef(This) (This)->lpVtbl->AddRef(This) #define IAMVideoCompression_Release(This) (This)->lpVtbl->Release(This) /*** IAMVideoCompression methods ***/ #define IAMVideoCompression_put_KeyFrameRate(This,frame_rate) (This)->lpVtbl->put_KeyFrameRate(This,frame_rate) #define IAMVideoCompression_get_KeyFrameRate(This,frame_rate) (This)->lpVtbl->get_KeyFrameRate(This,frame_rate) #define IAMVideoCompression_put_PFramesPerKeyFrame(This,frame) (This)->lpVtbl->put_PFramesPerKeyFrame(This,frame) #define IAMVideoCompression_get_PFramesPerKeyFrame(This,frame) (This)->lpVtbl->get_PFramesPerKeyFrame(This,frame) #define IAMVideoCompression_put_Quality(This,quality) (This)->lpVtbl->put_Quality(This,quality) #define IAMVideoCompression_get_Quality(This,quality) (This)->lpVtbl->get_Quality(This,quality) #define IAMVideoCompression_put_WindowSize(This,size) (This)->lpVtbl->put_WindowSize(This,size) #define IAMVideoCompression_get_WindowSize(This,size) (This)->lpVtbl->get_WindowSize(This,size) #define IAMVideoCompression_GetInfo(This,version,version_size,description,description_size,frame_rate,key,quality,capabilities) (This)->lpVtbl->GetInfo(This,version,version_size,description,description_size,frame_rate,key,quality,capabilities) #define IAMVideoCompression_OverrideKeyFrame(This,number) (This)->lpVtbl->OverrideKeyFrame(This,number) #define IAMVideoCompression_OverrideFrameSize(This,number,size) (This)->lpVtbl->OverrideFrameSize(This,number,size) #else /*** IUnknown methods ***/ static inline HRESULT IAMVideoCompression_QueryInterface(IAMVideoCompression* This,REFIID riid,void **ppvObject) { return This->lpVtbl->QueryInterface(This,riid,ppvObject); } static inline ULONG IAMVideoCompression_AddRef(IAMVideoCompression* This) { return This->lpVtbl->AddRef(This); } static inline ULONG IAMVideoCompression_Release(IAMVideoCompression* This) { return This->lpVtbl->Release(This); } /*** IAMVideoCompression methods ***/ static inline HRESULT IAMVideoCompression_put_KeyFrameRate(IAMVideoCompression* This,LONG frame_rate) { return This->lpVtbl->put_KeyFrameRate(This,frame_rate); } static inline HRESULT IAMVideoCompression_get_KeyFrameRate(IAMVideoCompression* This,LONG *frame_rate) { return This->lpVtbl->get_KeyFrameRate(This,frame_rate); } static inline HRESULT IAMVideoCompression_put_PFramesPerKeyFrame(IAMVideoCompression* This,LONG frame) { return This->lpVtbl->put_PFramesPerKeyFrame(This,frame); } static inline HRESULT IAMVideoCompression_get_PFramesPerKeyFrame(IAMVideoCompression* This,LONG *frame) { return This->lpVtbl->get_PFramesPerKeyFrame(This,frame); } static inline HRESULT IAMVideoCompression_put_Quality(IAMVideoCompression* This,double quality) { return This->lpVtbl->put_Quality(This,quality); } static inline HRESULT IAMVideoCompression_get_Quality(IAMVideoCompression* This,double *quality) { return This->lpVtbl->get_Quality(This,quality); } static inline HRESULT IAMVideoCompression_put_WindowSize(IAMVideoCompression* This,DWORDLONG size) { return This->lpVtbl->put_WindowSize(This,size); } static inline HRESULT IAMVideoCompression_get_WindowSize(IAMVideoCompression* This,DWORDLONG *size) { return This->lpVtbl->get_WindowSize(This,size); } static inline HRESULT IAMVideoCompression_GetInfo(IAMVideoCompression* This,LPWSTR version,int *version_size,LPWSTR description,int *description_size,LONG *frame_rate,LONG *key,double *quality,LONG *capabilities) { return This->lpVtbl->GetInfo(This,version,version_size,description,description_size,frame_rate,key,quality,capabilities); } static inline HRESULT IAMVideoCompression_OverrideKeyFrame(IAMVideoCompression* This,LONG number) { return This->lpVtbl->OverrideKeyFrame(This,number); } static inline HRESULT IAMVideoCompression_OverrideFrameSize(IAMVideoCompression* This,LONG number,LONG size) { return This->lpVtbl->OverrideFrameSize(This,number,size); } #endif #endif #endif #endif /* __IAMVideoCompression_INTERFACE_DEFINED__ */ /***************************************************************************** * IAMCrossbar interface */ #ifndef __IAMCrossbar_INTERFACE_DEFINED__ #define __IAMCrossbar_INTERFACE_DEFINED__ DEFINE_GUID(IID_IAMCrossbar, 0xc6e13380, 0x30ac, 0x11d0, 0xa1,0x8c, 0x00,0xa0,0xc9,0x11,0x89,0x56); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("c6e13380-30ac-11d0-a18c-00a0c9118956") IAMCrossbar : public IUnknown { virtual HRESULT STDMETHODCALLTYPE get_PinCounts( LONG *output, LONG *intput) = 0; virtual HRESULT STDMETHODCALLTYPE CanRoute( LONG output, LONG input) = 0; virtual HRESULT STDMETHODCALLTYPE Route( LONG output, LONG input) = 0; virtual HRESULT STDMETHODCALLTYPE get_IsRoutedTo( LONG output, LONG *input) = 0; virtual HRESULT STDMETHODCALLTYPE get_CrossbarPinInfo( BOOL is_input, LONG index, LONG *related, LONG *type) = 0; }; #ifdef __CRT_UUID_DECL __CRT_UUID_DECL(IAMCrossbar, 0xc6e13380, 0x30ac, 0x11d0, 0xa1,0x8c, 0x00,0xa0,0xc9,0x11,0x89,0x56) #endif #else typedef struct IAMCrossbarVtbl { BEGIN_INTERFACE /*** IUnknown methods ***/ HRESULT (STDMETHODCALLTYPE *QueryInterface)( IAMCrossbar *This, REFIID riid, void **ppvObject); ULONG (STDMETHODCALLTYPE *AddRef)( IAMCrossbar *This); ULONG (STDMETHODCALLTYPE *Release)( IAMCrossbar *This); /*** IAMCrossbar methods ***/ HRESULT (STDMETHODCALLTYPE *get_PinCounts)( IAMCrossbar *This, LONG *output, LONG *intput); HRESULT (STDMETHODCALLTYPE *CanRoute)( IAMCrossbar *This, LONG output, LONG input); HRESULT (STDMETHODCALLTYPE *Route)( IAMCrossbar *This, LONG output, LONG input); HRESULT (STDMETHODCALLTYPE *get_IsRoutedTo)( IAMCrossbar *This, LONG output, LONG *input); HRESULT (STDMETHODCALLTYPE *get_CrossbarPinInfo)( IAMCrossbar *This, BOOL is_input, LONG index, LONG *related, LONG *type); END_INTERFACE } IAMCrossbarVtbl; interface IAMCrossbar { CONST_VTBL IAMCrossbarVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ #define IAMCrossbar_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IAMCrossbar_AddRef(This) (This)->lpVtbl->AddRef(This) #define IAMCrossbar_Release(This) (This)->lpVtbl->Release(This) /*** IAMCrossbar methods ***/ #define IAMCrossbar_get_PinCounts(This,output,intput) (This)->lpVtbl->get_PinCounts(This,output,intput) #define IAMCrossbar_CanRoute(This,output,input) (This)->lpVtbl->CanRoute(This,output,input) #define IAMCrossbar_Route(This,output,input) (This)->lpVtbl->Route(This,output,input) #define IAMCrossbar_get_IsRoutedTo(This,output,input) (This)->lpVtbl->get_IsRoutedTo(This,output,input) #define IAMCrossbar_get_CrossbarPinInfo(This,is_input,index,related,type) (This)->lpVtbl->get_CrossbarPinInfo(This,is_input,index,related,type) #else /*** IUnknown methods ***/ static inline HRESULT IAMCrossbar_QueryInterface(IAMCrossbar* This,REFIID riid,void **ppvObject) { return This->lpVtbl->QueryInterface(This,riid,ppvObject); } static inline ULONG IAMCrossbar_AddRef(IAMCrossbar* This) { return This->lpVtbl->AddRef(This); } static inline ULONG IAMCrossbar_Release(IAMCrossbar* This) { return This->lpVtbl->Release(This); } /*** IAMCrossbar methods ***/ static inline HRESULT IAMCrossbar_get_PinCounts(IAMCrossbar* This,LONG *output,LONG *intput) { return This->lpVtbl->get_PinCounts(This,output,intput); } static inline HRESULT IAMCrossbar_CanRoute(IAMCrossbar* This,LONG output,LONG input) { return This->lpVtbl->CanRoute(This,output,input); } static inline HRESULT IAMCrossbar_Route(IAMCrossbar* This,LONG output,LONG input) { return This->lpVtbl->Route(This,output,input); } static inline HRESULT IAMCrossbar_get_IsRoutedTo(IAMCrossbar* This,LONG output,LONG *input) { return This->lpVtbl->get_IsRoutedTo(This,output,input); } static inline HRESULT IAMCrossbar_get_CrossbarPinInfo(IAMCrossbar* This,BOOL is_input,LONG index,LONG *related,LONG *type) { return This->lpVtbl->get_CrossbarPinInfo(This,is_input,index,related,type); } #endif #endif #endif #endif /* __IAMCrossbar_INTERFACE_DEFINED__ */ typedef enum tagAMTunerEventType { AMTUNER_EVENT_CHANGED = 0x1 } AMTunerEventType; /***************************************************************************** * IAMTunerNotification interface */ #ifndef __IAMTunerNotification_INTERFACE_DEFINED__ #define __IAMTunerNotification_INTERFACE_DEFINED__ DEFINE_GUID(IID_IAMTunerNotification, 0x211a8760, 0x03ac, 0x11d1, 0x8d,0x13, 0x00,0xaa,0x00,0xbd,0x83,0x39); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("211a8760-03ac-11d1-8d13-00aa00bd8339") IAMTunerNotification : public IUnknown { virtual HRESULT STDMETHODCALLTYPE OnEvent( AMTunerEventType event) = 0; }; #ifdef __CRT_UUID_DECL __CRT_UUID_DECL(IAMTunerNotification, 0x211a8760, 0x03ac, 0x11d1, 0x8d,0x13, 0x00,0xaa,0x00,0xbd,0x83,0x39) #endif #else typedef struct IAMTunerNotificationVtbl { BEGIN_INTERFACE /*** IUnknown methods ***/ HRESULT (STDMETHODCALLTYPE *QueryInterface)( IAMTunerNotification *This, REFIID riid, void **ppvObject); ULONG (STDMETHODCALLTYPE *AddRef)( IAMTunerNotification *This); ULONG (STDMETHODCALLTYPE *Release)( IAMTunerNotification *This); /*** IAMTunerNotification methods ***/ HRESULT (STDMETHODCALLTYPE *OnEvent)( IAMTunerNotification *This, AMTunerEventType event); END_INTERFACE } IAMTunerNotificationVtbl; interface IAMTunerNotification { CONST_VTBL IAMTunerNotificationVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ #define IAMTunerNotification_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IAMTunerNotification_AddRef(This) (This)->lpVtbl->AddRef(This) #define IAMTunerNotification_Release(This) (This)->lpVtbl->Release(This) /*** IAMTunerNotification methods ***/ #define IAMTunerNotification_OnEvent(This,event) (This)->lpVtbl->OnEvent(This,event) #else /*** IUnknown methods ***/ static inline HRESULT IAMTunerNotification_QueryInterface(IAMTunerNotification* This,REFIID riid,void **ppvObject) { return This->lpVtbl->QueryInterface(This,riid,ppvObject); } static inline ULONG IAMTunerNotification_AddRef(IAMTunerNotification* This) { return This->lpVtbl->AddRef(This); } static inline ULONG IAMTunerNotification_Release(IAMTunerNotification* This) { return This->lpVtbl->Release(This); } /*** IAMTunerNotification methods ***/ static inline HRESULT IAMTunerNotification_OnEvent(IAMTunerNotification* This,AMTunerEventType event) { return This->lpVtbl->OnEvent(This,event); } #endif #endif #endif #endif /* __IAMTunerNotification_INTERFACE_DEFINED__ */ typedef enum tagAMTunerModeType { AMTUNER_MODE_DEFAULT = 0x0, AMTUNER_MODE_TV = 0x1, AMTUNER_MODE_FM_RADIO = 0x2, AMTUNER_MODE_AM_RADIO = 0x4, AMTUNER_MODE_DSS = 0x8 } AMTunerModeType; /***************************************************************************** * IAMTuner interface */ #ifndef __IAMTuner_INTERFACE_DEFINED__ #define __IAMTuner_INTERFACE_DEFINED__ DEFINE_GUID(IID_IAMTuner, 0x211a8761, 0x03ac, 0x11d1, 0x8d,0x13, 0x00,0xaa,0x00,0xbd,0x83,0x39); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("211a8761-03ac-11d1-8d13-00aa00bd8339") IAMTuner : public IUnknown { virtual HRESULT STDMETHODCALLTYPE put_Channel( LONG channel, LONG video, LONG audio) = 0; virtual HRESULT STDMETHODCALLTYPE get_Channel( LONG *channel, LONG *video, LONG *audio) = 0; virtual HRESULT STDMETHODCALLTYPE ChannelMinMax( LONG *min, LONG *max) = 0; virtual HRESULT STDMETHODCALLTYPE put_CountryCode( LONG country) = 0; virtual HRESULT STDMETHODCALLTYPE get_CountryCode( LONG *country) = 0; virtual HRESULT STDMETHODCALLTYPE put_TuningSpace( LONG tuning_space) = 0; virtual HRESULT STDMETHODCALLTYPE get_TuningSpace( LONG *tuning_space) = 0; virtual HRESULT STDMETHODCALLTYPE Logon( HANDLE user) = 0; virtual HRESULT STDMETHODCALLTYPE Logout( ) = 0; virtual HRESULT STDMETHODCALLTYPE SignalPresent( LONG *signal_strength) = 0; virtual HRESULT STDMETHODCALLTYPE put_Mode( AMTunerModeType mode) = 0; virtual HRESULT STDMETHODCALLTYPE get_Mode( AMTunerModeType *mode) = 0; virtual HRESULT STDMETHODCALLTYPE GetAvailableModes( LONG *modes) = 0; virtual HRESULT STDMETHODCALLTYPE RegisterNotificationCallBack( IAMTunerNotification *notify, LONG events) = 0; virtual HRESULT STDMETHODCALLTYPE UnRegisterNotificationCallBack( IAMTunerNotification *notify) = 0; }; #ifdef __CRT_UUID_DECL __CRT_UUID_DECL(IAMTuner, 0x211a8761, 0x03ac, 0x11d1, 0x8d,0x13, 0x00,0xaa,0x00,0xbd,0x83,0x39) #endif #else typedef struct IAMTunerVtbl { BEGIN_INTERFACE /*** IUnknown methods ***/ HRESULT (STDMETHODCALLTYPE *QueryInterface)( IAMTuner *This, REFIID riid, void **ppvObject); ULONG (STDMETHODCALLTYPE *AddRef)( IAMTuner *This); ULONG (STDMETHODCALLTYPE *Release)( IAMTuner *This); /*** IAMTuner methods ***/ HRESULT (STDMETHODCALLTYPE *put_Channel)( IAMTuner *This, LONG channel, LONG video, LONG audio); HRESULT (STDMETHODCALLTYPE *get_Channel)( IAMTuner *This, LONG *channel, LONG *video, LONG *audio); HRESULT (STDMETHODCALLTYPE *ChannelMinMax)( IAMTuner *This, LONG *min, LONG *max); HRESULT (STDMETHODCALLTYPE *put_CountryCode)( IAMTuner *This, LONG country); HRESULT (STDMETHODCALLTYPE *get_CountryCode)( IAMTuner *This, LONG *country); HRESULT (STDMETHODCALLTYPE *put_TuningSpace)( IAMTuner *This, LONG tuning_space); HRESULT (STDMETHODCALLTYPE *get_TuningSpace)( IAMTuner *This, LONG *tuning_space); HRESULT (STDMETHODCALLTYPE *Logon)( IAMTuner *This, HANDLE user); HRESULT (STDMETHODCALLTYPE *Logout)( IAMTuner *This); HRESULT (STDMETHODCALLTYPE *SignalPresent)( IAMTuner *This, LONG *signal_strength); HRESULT (STDMETHODCALLTYPE *put_Mode)( IAMTuner *This, AMTunerModeType mode); HRESULT (STDMETHODCALLTYPE *get_Mode)( IAMTuner *This, AMTunerModeType *mode); HRESULT (STDMETHODCALLTYPE *GetAvailableModes)( IAMTuner *This, LONG *modes); HRESULT (STDMETHODCALLTYPE *RegisterNotificationCallBack)( IAMTuner *This, IAMTunerNotification *notify, LONG events); HRESULT (STDMETHODCALLTYPE *UnRegisterNotificationCallBack)( IAMTuner *This, IAMTunerNotification *notify); END_INTERFACE } IAMTunerVtbl; interface IAMTuner { CONST_VTBL IAMTunerVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ #define IAMTuner_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IAMTuner_AddRef(This) (This)->lpVtbl->AddRef(This) #define IAMTuner_Release(This) (This)->lpVtbl->Release(This) /*** IAMTuner methods ***/ #define IAMTuner_put_Channel(This,channel,video,audio) (This)->lpVtbl->put_Channel(This,channel,video,audio) #define IAMTuner_get_Channel(This,channel,video,audio) (This)->lpVtbl->get_Channel(This,channel,video,audio) #define IAMTuner_ChannelMinMax(This,min,max) (This)->lpVtbl->ChannelMinMax(This,min,max) #define IAMTuner_put_CountryCode(This,country) (This)->lpVtbl->put_CountryCode(This,country) #define IAMTuner_get_CountryCode(This,country) (This)->lpVtbl->get_CountryCode(This,country) #define IAMTuner_put_TuningSpace(This,tuning_space) (This)->lpVtbl->put_TuningSpace(This,tuning_space) #define IAMTuner_get_TuningSpace(This,tuning_space) (This)->lpVtbl->get_TuningSpace(This,tuning_space) #define IAMTuner_Logon(This,user) (This)->lpVtbl->Logon(This,user) #define IAMTuner_Logout(This) (This)->lpVtbl->Logout(This) #define IAMTuner_SignalPresent(This,signal_strength) (This)->lpVtbl->SignalPresent(This,signal_strength) #define IAMTuner_put_Mode(This,mode) (This)->lpVtbl->put_Mode(This,mode) #define IAMTuner_get_Mode(This,mode) (This)->lpVtbl->get_Mode(This,mode) #define IAMTuner_GetAvailableModes(This,modes) (This)->lpVtbl->GetAvailableModes(This,modes) #define IAMTuner_RegisterNotificationCallBack(This,notify,events) (This)->lpVtbl->RegisterNotificationCallBack(This,notify,events) #define IAMTuner_UnRegisterNotificationCallBack(This,notify) (This)->lpVtbl->UnRegisterNotificationCallBack(This,notify) #else /*** IUnknown methods ***/ static inline HRESULT IAMTuner_QueryInterface(IAMTuner* This,REFIID riid,void **ppvObject) { return This->lpVtbl->QueryInterface(This,riid,ppvObject); } static inline ULONG IAMTuner_AddRef(IAMTuner* This) { return This->lpVtbl->AddRef(This); } static inline ULONG IAMTuner_Release(IAMTuner* This) { return This->lpVtbl->Release(This); } /*** IAMTuner methods ***/ static inline HRESULT IAMTuner_put_Channel(IAMTuner* This,LONG channel,LONG video,LONG audio) { return This->lpVtbl->put_Channel(This,channel,video,audio); } static inline HRESULT IAMTuner_get_Channel(IAMTuner* This,LONG *channel,LONG *video,LONG *audio) { return This->lpVtbl->get_Channel(This,channel,video,audio); } static inline HRESULT IAMTuner_ChannelMinMax(IAMTuner* This,LONG *min,LONG *max) { return This->lpVtbl->ChannelMinMax(This,min,max); } static inline HRESULT IAMTuner_put_CountryCode(IAMTuner* This,LONG country) { return This->lpVtbl->put_CountryCode(This,country); } static inline HRESULT IAMTuner_get_CountryCode(IAMTuner* This,LONG *country) { return This->lpVtbl->get_CountryCode(This,country); } static inline HRESULT IAMTuner_put_TuningSpace(IAMTuner* This,LONG tuning_space) { return This->lpVtbl->put_TuningSpace(This,tuning_space); } static inline HRESULT IAMTuner_get_TuningSpace(IAMTuner* This,LONG *tuning_space) { return This->lpVtbl->get_TuningSpace(This,tuning_space); } static inline HRESULT IAMTuner_Logon(IAMTuner* This,HANDLE user) { return This->lpVtbl->Logon(This,user); } static inline HRESULT IAMTuner_Logout(IAMTuner* This) { return This->lpVtbl->Logout(This); } static inline HRESULT IAMTuner_SignalPresent(IAMTuner* This,LONG *signal_strength) { return This->lpVtbl->SignalPresent(This,signal_strength); } static inline HRESULT IAMTuner_put_Mode(IAMTuner* This,AMTunerModeType mode) { return This->lpVtbl->put_Mode(This,mode); } static inline HRESULT IAMTuner_get_Mode(IAMTuner* This,AMTunerModeType *mode) { return This->lpVtbl->get_Mode(This,mode); } static inline HRESULT IAMTuner_GetAvailableModes(IAMTuner* This,LONG *modes) { return This->lpVtbl->GetAvailableModes(This,modes); } static inline HRESULT IAMTuner_RegisterNotificationCallBack(IAMTuner* This,IAMTunerNotification *notify,LONG events) { return This->lpVtbl->RegisterNotificationCallBack(This,notify,events); } static inline HRESULT IAMTuner_UnRegisterNotificationCallBack(IAMTuner* This,IAMTunerNotification *notify) { return This->lpVtbl->UnRegisterNotificationCallBack(This,notify); } #endif #endif #endif #endif /* __IAMTuner_INTERFACE_DEFINED__ */ /***************************************************************************** * IAMTVTuner interface */ #ifndef __IAMTVTuner_INTERFACE_DEFINED__ #define __IAMTVTuner_INTERFACE_DEFINED__ DEFINE_GUID(IID_IAMTVTuner, 0x211a8766, 0x03ac, 0x11d1, 0x8d,0x13, 0x00,0xaa,0x00,0xbd,0x83,0x39); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("211a8766-03ac-11d1-8d13-00aa00bd8339") IAMTVTuner : public IAMTuner { virtual HRESULT STDMETHODCALLTYPE get_AvailableTVFormats( LONG *standard) = 0; virtual HRESULT STDMETHODCALLTYPE get_TVFormat( LONG *standard) = 0; virtual HRESULT STDMETHODCALLTYPE AutoTune( LONG channel, LONG *signal) = 0; virtual HRESULT STDMETHODCALLTYPE StoreAutoTune( ) = 0; virtual HRESULT STDMETHODCALLTYPE get_NumInputConnections( LONG *number) = 0; virtual HRESULT STDMETHODCALLTYPE put_InputType( LONG index, TunerInputType type) = 0; virtual HRESULT STDMETHODCALLTYPE get_InputType( LONG index, TunerInputType *type) = 0; virtual HRESULT STDMETHODCALLTYPE put_ConnectInput( LONG index) = 0; virtual HRESULT STDMETHODCALLTYPE get_ConnectInput( LONG *index) = 0; virtual HRESULT STDMETHODCALLTYPE get_VideoFrequency( LONG *freq) = 0; virtual HRESULT STDMETHODCALLTYPE get_AudioFrequency( LONG *freq) = 0; }; #ifdef __CRT_UUID_DECL __CRT_UUID_DECL(IAMTVTuner, 0x211a8766, 0x03ac, 0x11d1, 0x8d,0x13, 0x00,0xaa,0x00,0xbd,0x83,0x39) #endif #else typedef struct IAMTVTunerVtbl { BEGIN_INTERFACE /*** IUnknown methods ***/ HRESULT (STDMETHODCALLTYPE *QueryInterface)( IAMTVTuner *This, REFIID riid, void **ppvObject); ULONG (STDMETHODCALLTYPE *AddRef)( IAMTVTuner *This); ULONG (STDMETHODCALLTYPE *Release)( IAMTVTuner *This); /*** IAMTuner methods ***/ HRESULT (STDMETHODCALLTYPE *put_Channel)( IAMTVTuner *This, LONG channel, LONG video, LONG audio); HRESULT (STDMETHODCALLTYPE *get_Channel)( IAMTVTuner *This, LONG *channel, LONG *video, LONG *audio); HRESULT (STDMETHODCALLTYPE *ChannelMinMax)( IAMTVTuner *This, LONG *min, LONG *max); HRESULT (STDMETHODCALLTYPE *put_CountryCode)( IAMTVTuner *This, LONG country); HRESULT (STDMETHODCALLTYPE *get_CountryCode)( IAMTVTuner *This, LONG *country); HRESULT (STDMETHODCALLTYPE *put_TuningSpace)( IAMTVTuner *This, LONG tuning_space); HRESULT (STDMETHODCALLTYPE *get_TuningSpace)( IAMTVTuner *This, LONG *tuning_space); HRESULT (STDMETHODCALLTYPE *Logon)( IAMTVTuner *This, HANDLE user); HRESULT (STDMETHODCALLTYPE *Logout)( IAMTVTuner *This); HRESULT (STDMETHODCALLTYPE *SignalPresent)( IAMTVTuner *This, LONG *signal_strength); HRESULT (STDMETHODCALLTYPE *put_Mode)( IAMTVTuner *This, AMTunerModeType mode); HRESULT (STDMETHODCALLTYPE *get_Mode)( IAMTVTuner *This, AMTunerModeType *mode); HRESULT (STDMETHODCALLTYPE *GetAvailableModes)( IAMTVTuner *This, LONG *modes); HRESULT (STDMETHODCALLTYPE *RegisterNotificationCallBack)( IAMTVTuner *This, IAMTunerNotification *notify, LONG events); HRESULT (STDMETHODCALLTYPE *UnRegisterNotificationCallBack)( IAMTVTuner *This, IAMTunerNotification *notify); /*** IAMTVTuner methods ***/ HRESULT (STDMETHODCALLTYPE *get_AvailableTVFormats)( IAMTVTuner *This, LONG *standard); HRESULT (STDMETHODCALLTYPE *get_TVFormat)( IAMTVTuner *This, LONG *standard); HRESULT (STDMETHODCALLTYPE *AutoTune)( IAMTVTuner *This, LONG channel, LONG *signal); HRESULT (STDMETHODCALLTYPE *StoreAutoTune)( IAMTVTuner *This); HRESULT (STDMETHODCALLTYPE *get_NumInputConnections)( IAMTVTuner *This, LONG *number); HRESULT (STDMETHODCALLTYPE *put_InputType)( IAMTVTuner *This, LONG index, TunerInputType type); HRESULT (STDMETHODCALLTYPE *get_InputType)( IAMTVTuner *This, LONG index, TunerInputType *type); HRESULT (STDMETHODCALLTYPE *put_ConnectInput)( IAMTVTuner *This, LONG index); HRESULT (STDMETHODCALLTYPE *get_ConnectInput)( IAMTVTuner *This, LONG *index); HRESULT (STDMETHODCALLTYPE *get_VideoFrequency)( IAMTVTuner *This, LONG *freq); HRESULT (STDMETHODCALLTYPE *get_AudioFrequency)( IAMTVTuner *This, LONG *freq); END_INTERFACE } IAMTVTunerVtbl; interface IAMTVTuner { CONST_VTBL IAMTVTunerVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ #define IAMTVTuner_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IAMTVTuner_AddRef(This) (This)->lpVtbl->AddRef(This) #define IAMTVTuner_Release(This) (This)->lpVtbl->Release(This) /*** IAMTuner methods ***/ #define IAMTVTuner_put_Channel(This,channel,video,audio) (This)->lpVtbl->put_Channel(This,channel,video,audio) #define IAMTVTuner_get_Channel(This,channel,video,audio) (This)->lpVtbl->get_Channel(This,channel,video,audio) #define IAMTVTuner_ChannelMinMax(This,min,max) (This)->lpVtbl->ChannelMinMax(This,min,max) #define IAMTVTuner_put_CountryCode(This,country) (This)->lpVtbl->put_CountryCode(This,country) #define IAMTVTuner_get_CountryCode(This,country) (This)->lpVtbl->get_CountryCode(This,country) #define IAMTVTuner_put_TuningSpace(This,tuning_space) (This)->lpVtbl->put_TuningSpace(This,tuning_space) #define IAMTVTuner_get_TuningSpace(This,tuning_space) (This)->lpVtbl->get_TuningSpace(This,tuning_space) #define IAMTVTuner_Logon(This,user) (This)->lpVtbl->Logon(This,user) #define IAMTVTuner_Logout(This) (This)->lpVtbl->Logout(This) #define IAMTVTuner_SignalPresent(This,signal_strength) (This)->lpVtbl->SignalPresent(This,signal_strength) #define IAMTVTuner_put_Mode(This,mode) (This)->lpVtbl->put_Mode(This,mode) #define IAMTVTuner_get_Mode(This,mode) (This)->lpVtbl->get_Mode(This,mode) #define IAMTVTuner_GetAvailableModes(This,modes) (This)->lpVtbl->GetAvailableModes(This,modes) #define IAMTVTuner_RegisterNotificationCallBack(This,notify,events) (This)->lpVtbl->RegisterNotificationCallBack(This,notify,events) #define IAMTVTuner_UnRegisterNotificationCallBack(This,notify) (This)->lpVtbl->UnRegisterNotificationCallBack(This,notify) /*** IAMTVTuner methods ***/ #define IAMTVTuner_get_AvailableTVFormats(This,standard) (This)->lpVtbl->get_AvailableTVFormats(This,standard) #define IAMTVTuner_get_TVFormat(This,standard) (This)->lpVtbl->get_TVFormat(This,standard) #define IAMTVTuner_AutoTune(This,channel,signal) (This)->lpVtbl->AutoTune(This,channel,signal) #define IAMTVTuner_StoreAutoTune(This) (This)->lpVtbl->StoreAutoTune(This) #define IAMTVTuner_get_NumInputConnections(This,number) (This)->lpVtbl->get_NumInputConnections(This,number) #define IAMTVTuner_put_InputType(This,index,type) (This)->lpVtbl->put_InputType(This,index,type) #define IAMTVTuner_get_InputType(This,index,type) (This)->lpVtbl->get_InputType(This,index,type) #define IAMTVTuner_put_ConnectInput(This,index) (This)->lpVtbl->put_ConnectInput(This,index) #define IAMTVTuner_get_ConnectInput(This,index) (This)->lpVtbl->get_ConnectInput(This,index) #define IAMTVTuner_get_VideoFrequency(This,freq) (This)->lpVtbl->get_VideoFrequency(This,freq) #define IAMTVTuner_get_AudioFrequency(This,freq) (This)->lpVtbl->get_AudioFrequency(This,freq) #else /*** IUnknown methods ***/ static inline HRESULT IAMTVTuner_QueryInterface(IAMTVTuner* This,REFIID riid,void **ppvObject) { return This->lpVtbl->QueryInterface(This,riid,ppvObject); } static inline ULONG IAMTVTuner_AddRef(IAMTVTuner* This) { return This->lpVtbl->AddRef(This); } static inline ULONG IAMTVTuner_Release(IAMTVTuner* This) { return This->lpVtbl->Release(This); } /*** IAMTuner methods ***/ static inline HRESULT IAMTVTuner_put_Channel(IAMTVTuner* This,LONG channel,LONG video,LONG audio) { return This->lpVtbl->put_Channel(This,channel,video,audio); } static inline HRESULT IAMTVTuner_get_Channel(IAMTVTuner* This,LONG *channel,LONG *video,LONG *audio) { return This->lpVtbl->get_Channel(This,channel,video,audio); } static inline HRESULT IAMTVTuner_ChannelMinMax(IAMTVTuner* This,LONG *min,LONG *max) { return This->lpVtbl->ChannelMinMax(This,min,max); } static inline HRESULT IAMTVTuner_put_CountryCode(IAMTVTuner* This,LONG country) { return This->lpVtbl->put_CountryCode(This,country); } static inline HRESULT IAMTVTuner_get_CountryCode(IAMTVTuner* This,LONG *country) { return This->lpVtbl->get_CountryCode(This,country); } static inline HRESULT IAMTVTuner_put_TuningSpace(IAMTVTuner* This,LONG tuning_space) { return This->lpVtbl->put_TuningSpace(This,tuning_space); } static inline HRESULT IAMTVTuner_get_TuningSpace(IAMTVTuner* This,LONG *tuning_space) { return This->lpVtbl->get_TuningSpace(This,tuning_space); } static inline HRESULT IAMTVTuner_Logon(IAMTVTuner* This,HANDLE user) { return This->lpVtbl->Logon(This,user); } static inline HRESULT IAMTVTuner_Logout(IAMTVTuner* This) { return This->lpVtbl->Logout(This); } static inline HRESULT IAMTVTuner_SignalPresent(IAMTVTuner* This,LONG *signal_strength) { return This->lpVtbl->SignalPresent(This,signal_strength); } static inline HRESULT IAMTVTuner_put_Mode(IAMTVTuner* This,AMTunerModeType mode) { return This->lpVtbl->put_Mode(This,mode); } static inline HRESULT IAMTVTuner_get_Mode(IAMTVTuner* This,AMTunerModeType *mode) { return This->lpVtbl->get_Mode(This,mode); } static inline HRESULT IAMTVTuner_GetAvailableModes(IAMTVTuner* This,LONG *modes) { return This->lpVtbl->GetAvailableModes(This,modes); } static inline HRESULT IAMTVTuner_RegisterNotificationCallBack(IAMTVTuner* This,IAMTunerNotification *notify,LONG events) { return This->lpVtbl->RegisterNotificationCallBack(This,notify,events); } static inline HRESULT IAMTVTuner_UnRegisterNotificationCallBack(IAMTVTuner* This,IAMTunerNotification *notify) { return This->lpVtbl->UnRegisterNotificationCallBack(This,notify); } /*** IAMTVTuner methods ***/ static inline HRESULT IAMTVTuner_get_AvailableTVFormats(IAMTVTuner* This,LONG *standard) { return This->lpVtbl->get_AvailableTVFormats(This,standard); } static inline HRESULT IAMTVTuner_get_TVFormat(IAMTVTuner* This,LONG *standard) { return This->lpVtbl->get_TVFormat(This,standard); } static inline HRESULT IAMTVTuner_AutoTune(IAMTVTuner* This,LONG channel,LONG *signal) { return This->lpVtbl->AutoTune(This,channel,signal); } static inline HRESULT IAMTVTuner_StoreAutoTune(IAMTVTuner* This) { return This->lpVtbl->StoreAutoTune(This); } static inline HRESULT IAMTVTuner_get_NumInputConnections(IAMTVTuner* This,LONG *number) { return This->lpVtbl->get_NumInputConnections(This,number); } static inline HRESULT IAMTVTuner_put_InputType(IAMTVTuner* This,LONG index,TunerInputType type) { return This->lpVtbl->put_InputType(This,index,type); } static inline HRESULT IAMTVTuner_get_InputType(IAMTVTuner* This,LONG index,TunerInputType *type) { return This->lpVtbl->get_InputType(This,index,type); } static inline HRESULT IAMTVTuner_put_ConnectInput(IAMTVTuner* This,LONG index) { return This->lpVtbl->put_ConnectInput(This,index); } static inline HRESULT IAMTVTuner_get_ConnectInput(IAMTVTuner* This,LONG *index) { return This->lpVtbl->get_ConnectInput(This,index); } static inline HRESULT IAMTVTuner_get_VideoFrequency(IAMTVTuner* This,LONG *freq) { return This->lpVtbl->get_VideoFrequency(This,freq); } static inline HRESULT IAMTVTuner_get_AudioFrequency(IAMTVTuner* This,LONG *freq) { return This->lpVtbl->get_AudioFrequency(This,freq); } #endif #endif #endif #endif /* __IAMTVTuner_INTERFACE_DEFINED__ */ /***************************************************************************** * IVideoFrameStep interface */ #ifndef __IVideoFrameStep_INTERFACE_DEFINED__ #define __IVideoFrameStep_INTERFACE_DEFINED__ DEFINE_GUID(IID_IVideoFrameStep, 0xe46a9787, 0x2b71, 0x444d, 0xa4,0xb5, 0x1f,0xab,0x7b,0x70,0x8d,0x6a); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("e46a9787-2b71-444d-a4b5-1fab7b708d6a") IVideoFrameStep : public IUnknown { virtual HRESULT STDMETHODCALLTYPE Step( DWORD frame_count, IUnknown *filter) = 0; virtual HRESULT STDMETHODCALLTYPE CanStep( LONG multiple, IUnknown *filter) = 0; virtual HRESULT STDMETHODCALLTYPE CancelStep( ) = 0; }; #ifdef __CRT_UUID_DECL __CRT_UUID_DECL(IVideoFrameStep, 0xe46a9787, 0x2b71, 0x444d, 0xa4,0xb5, 0x1f,0xab,0x7b,0x70,0x8d,0x6a) #endif #else typedef struct IVideoFrameStepVtbl { BEGIN_INTERFACE /*** IUnknown methods ***/ HRESULT (STDMETHODCALLTYPE *QueryInterface)( IVideoFrameStep *This, REFIID riid, void **ppvObject); ULONG (STDMETHODCALLTYPE *AddRef)( IVideoFrameStep *This); ULONG (STDMETHODCALLTYPE *Release)( IVideoFrameStep *This); /*** IVideoFrameStep methods ***/ HRESULT (STDMETHODCALLTYPE *Step)( IVideoFrameStep *This, DWORD frame_count, IUnknown *filter); HRESULT (STDMETHODCALLTYPE *CanStep)( IVideoFrameStep *This, LONG multiple, IUnknown *filter); HRESULT (STDMETHODCALLTYPE *CancelStep)( IVideoFrameStep *This); END_INTERFACE } IVideoFrameStepVtbl; interface IVideoFrameStep { CONST_VTBL IVideoFrameStepVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ #define IVideoFrameStep_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IVideoFrameStep_AddRef(This) (This)->lpVtbl->AddRef(This) #define IVideoFrameStep_Release(This) (This)->lpVtbl->Release(This) /*** IVideoFrameStep methods ***/ #define IVideoFrameStep_Step(This,frame_count,filter) (This)->lpVtbl->Step(This,frame_count,filter) #define IVideoFrameStep_CanStep(This,multiple,filter) (This)->lpVtbl->CanStep(This,multiple,filter) #define IVideoFrameStep_CancelStep(This) (This)->lpVtbl->CancelStep(This) #else /*** IUnknown methods ***/ static inline HRESULT IVideoFrameStep_QueryInterface(IVideoFrameStep* This,REFIID riid,void **ppvObject) { return This->lpVtbl->QueryInterface(This,riid,ppvObject); } static inline ULONG IVideoFrameStep_AddRef(IVideoFrameStep* This) { return This->lpVtbl->AddRef(This); } static inline ULONG IVideoFrameStep_Release(IVideoFrameStep* This) { return This->lpVtbl->Release(This); } /*** IVideoFrameStep methods ***/ static inline HRESULT IVideoFrameStep_Step(IVideoFrameStep* This,DWORD frame_count,IUnknown *filter) { return This->lpVtbl->Step(This,frame_count,filter); } static inline HRESULT IVideoFrameStep_CanStep(IVideoFrameStep* This,LONG multiple,IUnknown *filter) { return This->lpVtbl->CanStep(This,multiple,filter); } static inline HRESULT IVideoFrameStep_CancelStep(IVideoFrameStep* This) { return This->lpVtbl->CancelStep(This); } #endif #endif #endif #endif /* __IVideoFrameStep_INTERFACE_DEFINED__ */ #ifndef __IPinConnection_FWD_DEFINED__ #define __IPinConnection_FWD_DEFINED__ typedef interface IPinConnection IPinConnection; #ifdef __cplusplus interface IPinConnection; #endif /* __cplusplus */ #endif #ifndef __IPinFlowControl_FWD_DEFINED__ #define __IPinFlowControl_FWD_DEFINED__ typedef interface IPinFlowControl IPinFlowControl; #ifdef __cplusplus interface IPinFlowControl; #endif /* __cplusplus */ #endif #ifndef __IGraphConfig_FWD_DEFINED__ #define __IGraphConfig_FWD_DEFINED__ typedef interface IGraphConfig IGraphConfig; #ifdef __cplusplus interface IGraphConfig; #endif /* __cplusplus */ #endif #ifndef __IGraphConfigCallback_FWD_DEFINED__ #define __IGraphConfigCallback_FWD_DEFINED__ typedef interface IGraphConfigCallback IGraphConfigCallback; #ifdef __cplusplus interface IGraphConfigCallback; #endif /* __cplusplus */ #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) MIDL_INTERFACE("4a9a62d3-27d4-403d-91e9-89f540e55534") 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; }; #ifdef __CRT_UUID_DECL __CRT_UUID_DECL(IPinConnection, 0x4a9a62d3, 0x27d4, 0x403d, 0x91,0xe9, 0x89,0xf5,0x40,0xe5,0x55,0x34) #endif #else typedef struct IPinConnectionVtbl { BEGIN_INTERFACE /*** 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); END_INTERFACE } IPinConnectionVtbl; interface IPinConnection { CONST_VTBL IPinConnectionVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ #define IPinConnection_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IPinConnection_AddRef(This) (This)->lpVtbl->AddRef(This) #define IPinConnection_Release(This) (This)->lpVtbl->Release(This) /*** IPinConnection methods ***/ #define IPinConnection_DynamicQueryAccept(This,pmt) (This)->lpVtbl->DynamicQueryAccept(This,pmt) #define IPinConnection_NotifyEndOfStream(This,hNotifyEvent) (This)->lpVtbl->NotifyEndOfStream(This,hNotifyEvent) #define IPinConnection_IsEndPin(This) (This)->lpVtbl->IsEndPin(This) #define IPinConnection_DynamicDisconnect(This) (This)->lpVtbl->DynamicDisconnect(This) #else /*** IUnknown methods ***/ static inline HRESULT IPinConnection_QueryInterface(IPinConnection* This,REFIID riid,void **ppvObject) { return This->lpVtbl->QueryInterface(This,riid,ppvObject); } static inline ULONG IPinConnection_AddRef(IPinConnection* This) { return This->lpVtbl->AddRef(This); } static inline ULONG IPinConnection_Release(IPinConnection* This) { return This->lpVtbl->Release(This); } /*** IPinConnection methods ***/ static inline HRESULT IPinConnection_DynamicQueryAccept(IPinConnection* This,const AM_MEDIA_TYPE *pmt) { return This->lpVtbl->DynamicQueryAccept(This,pmt); } static inline HRESULT IPinConnection_NotifyEndOfStream(IPinConnection* This,HANDLE hNotifyEvent) { return This->lpVtbl->NotifyEndOfStream(This,hNotifyEvent); } static inline HRESULT IPinConnection_IsEndPin(IPinConnection* This) { return This->lpVtbl->IsEndPin(This); } static inline HRESULT IPinConnection_DynamicDisconnect(IPinConnection* This) { return This->lpVtbl->DynamicDisconnect(This); } #endif #endif #endif #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) MIDL_INTERFACE("c56e9858-dbf3-4f6b-8119-384af2060deb") IPinFlowControl : public IUnknown { virtual HRESULT STDMETHODCALLTYPE Block( DWORD dwBlockFlags, HANDLE hEvent) = 0; }; #ifdef __CRT_UUID_DECL __CRT_UUID_DECL(IPinFlowControl, 0xc56e9858, 0xdbf3, 0x4f6b, 0x81,0x19, 0x38,0x4a,0xf2,0x06,0x0d,0xeb) #endif #else typedef struct IPinFlowControlVtbl { BEGIN_INTERFACE /*** 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); END_INTERFACE } IPinFlowControlVtbl; interface IPinFlowControl { CONST_VTBL IPinFlowControlVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ #define IPinFlowControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IPinFlowControl_AddRef(This) (This)->lpVtbl->AddRef(This) #define IPinFlowControl_Release(This) (This)->lpVtbl->Release(This) /*** IPinFlowControl methods ***/ #define IPinFlowControl_Block(This,dwBlockFlags,hEvent) (This)->lpVtbl->Block(This,dwBlockFlags,hEvent) #else /*** IUnknown methods ***/ static inline HRESULT IPinFlowControl_QueryInterface(IPinFlowControl* This,REFIID riid,void **ppvObject) { return This->lpVtbl->QueryInterface(This,riid,ppvObject); } static inline ULONG IPinFlowControl_AddRef(IPinFlowControl* This) { return This->lpVtbl->AddRef(This); } static inline ULONG IPinFlowControl_Release(IPinFlowControl* This) { return This->lpVtbl->Release(This); } /*** IPinFlowControl methods ***/ static inline HRESULT IPinFlowControl_Block(IPinFlowControl* This,DWORD dwBlockFlags,HANDLE hEvent) { return This->lpVtbl->Block(This,dwBlockFlags,hEvent); } #endif #endif #endif #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) MIDL_INTERFACE("03a1eb8e-32bf-4245-8502-114d08a9cb88") 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; }; #ifdef __CRT_UUID_DECL __CRT_UUID_DECL(IGraphConfig, 0x03a1eb8e, 0x32bf, 0x4245, 0x85,0x02, 0x11,0x4d,0x08,0xa9,0xcb,0x88) #endif #else typedef struct IGraphConfigVtbl { BEGIN_INTERFACE /*** 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); END_INTERFACE } IGraphConfigVtbl; interface IGraphConfig { CONST_VTBL IGraphConfigVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ #define IGraphConfig_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IGraphConfig_AddRef(This) (This)->lpVtbl->AddRef(This) #define IGraphConfig_Release(This) (This)->lpVtbl->Release(This) /*** IGraphConfig methods ***/ #define IGraphConfig_Reconnect(This,pOutputPin,pInputPin,pmtFirstConnection,pUsingFilter,hAbortEvent,dwFlags) (This)->lpVtbl->Reconnect(This,pOutputPin,pInputPin,pmtFirstConnection,pUsingFilter,hAbortEvent,dwFlags) #define IGraphConfig_Reconfigure(This,pCallback,pvContext,dwFlags,hAbortEvent) (This)->lpVtbl->Reconfigure(This,pCallback,pvContext,dwFlags,hAbortEvent) #define IGraphConfig_AddFilterToCache(This,pFilter) (This)->lpVtbl->AddFilterToCache(This,pFilter) #define IGraphConfig_EnumCacheFilter(This,pEnum) (This)->lpVtbl->EnumCacheFilter(This,pEnum) #define IGraphConfig_RemoveFilterFromCache(This,pFilter) (This)->lpVtbl->RemoveFilterFromCache(This,pFilter) #define IGraphConfig_GetStartTime(This,prtStart) (This)->lpVtbl->GetStartTime(This,prtStart) #define IGraphConfig_PushThroughData(This,pOutputPin,pConnection,hEventAbort) (This)->lpVtbl->PushThroughData(This,pOutputPin,pConnection,hEventAbort) #define IGraphConfig_SetFilterFlags(This,pFilter,dwFlags) (This)->lpVtbl->SetFilterFlags(This,pFilter,dwFlags) #define IGraphConfig_GetFilterFlags(This,pFilter,pdwFlags) (This)->lpVtbl->GetFilterFlags(This,pFilter,pdwFlags) #define IGraphConfig_RemoveFilterEx(This,pFilter,Flags) (This)->lpVtbl->RemoveFilterEx(This,pFilter,Flags) #else /*** IUnknown methods ***/ static inline HRESULT IGraphConfig_QueryInterface(IGraphConfig* This,REFIID riid,void **ppvObject) { return This->lpVtbl->QueryInterface(This,riid,ppvObject); } static inline ULONG IGraphConfig_AddRef(IGraphConfig* This) { return This->lpVtbl->AddRef(This); } static inline ULONG IGraphConfig_Release(IGraphConfig* This) { return This->lpVtbl->Release(This); } /*** IGraphConfig methods ***/ static inline HRESULT IGraphConfig_Reconnect(IGraphConfig* This,IPin *pOutputPin,IPin *pInputPin,const AM_MEDIA_TYPE *pmtFirstConnection,IBaseFilter *pUsingFilter,HANDLE hAbortEvent,DWORD dwFlags) { return This->lpVtbl->Reconnect(This,pOutputPin,pInputPin,pmtFirstConnection,pUsingFilter,hAbortEvent,dwFlags); } static inline HRESULT IGraphConfig_Reconfigure(IGraphConfig* This,IGraphConfigCallback *pCallback,PVOID pvContext,DWORD dwFlags,HANDLE hAbortEvent) { return This->lpVtbl->Reconfigure(This,pCallback,pvContext,dwFlags,hAbortEvent); } static inline HRESULT IGraphConfig_AddFilterToCache(IGraphConfig* This,IBaseFilter *pFilter) { return This->lpVtbl->AddFilterToCache(This,pFilter); } static inline HRESULT IGraphConfig_EnumCacheFilter(IGraphConfig* This,IEnumFilters **pEnum) { return This->lpVtbl->EnumCacheFilter(This,pEnum); } static inline HRESULT IGraphConfig_RemoveFilterFromCache(IGraphConfig* This,IBaseFilter *pFilter) { return This->lpVtbl->RemoveFilterFromCache(This,pFilter); } static inline HRESULT IGraphConfig_GetStartTime(IGraphConfig* This,REFERENCE_TIME *prtStart) { return This->lpVtbl->GetStartTime(This,prtStart); } static inline HRESULT IGraphConfig_PushThroughData(IGraphConfig* This,IPin *pOutputPin,IPinConnection *pConnection,HANDLE hEventAbort) { return This->lpVtbl->PushThroughData(This,pOutputPin,pConnection,hEventAbort); } static inline HRESULT IGraphConfig_SetFilterFlags(IGraphConfig* This,IBaseFilter *pFilter,DWORD dwFlags) { return This->lpVtbl->SetFilterFlags(This,pFilter,dwFlags); } static inline HRESULT IGraphConfig_GetFilterFlags(IGraphConfig* This,IBaseFilter *pFilter,DWORD *pdwFlags) { return This->lpVtbl->GetFilterFlags(This,pFilter,pdwFlags); } static inline HRESULT IGraphConfig_RemoveFilterEx(IGraphConfig* This,IBaseFilter *pFilter,DWORD Flags) { return This->lpVtbl->RemoveFilterEx(This,pFilter,Flags); } #endif #endif #endif #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) MIDL_INTERFACE("ade0fd60-d19d-11d2-abf6-00a0c905f375") IGraphConfigCallback : public IUnknown { virtual HRESULT STDMETHODCALLTYPE Reconfigure( PVOID pvContext, DWORD dwFlags) = 0; }; #ifdef __CRT_UUID_DECL __CRT_UUID_DECL(IGraphConfigCallback, 0xade0fd60, 0xd19d, 0x11d2, 0xab,0xf6, 0x00,0xa0,0xc9,0x05,0xf3,0x75) #endif #else typedef struct IGraphConfigCallbackVtbl { BEGIN_INTERFACE /*** 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); END_INTERFACE } IGraphConfigCallbackVtbl; interface IGraphConfigCallback { CONST_VTBL IGraphConfigCallbackVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ #define IGraphConfigCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IGraphConfigCallback_AddRef(This) (This)->lpVtbl->AddRef(This) #define IGraphConfigCallback_Release(This) (This)->lpVtbl->Release(This) /*** IGraphConfigCallback methods ***/ #define IGraphConfigCallback_Reconfigure(This,pvContext,dwFlags) (This)->lpVtbl->Reconfigure(This,pvContext,dwFlags) #else /*** IUnknown methods ***/ static inline HRESULT IGraphConfigCallback_QueryInterface(IGraphConfigCallback* This,REFIID riid,void **ppvObject) { return This->lpVtbl->QueryInterface(This,riid,ppvObject); } static inline ULONG IGraphConfigCallback_AddRef(IGraphConfigCallback* This) { return This->lpVtbl->AddRef(This); } static inline ULONG IGraphConfigCallback_Release(IGraphConfigCallback* This) { return This->lpVtbl->Release(This); } /*** IGraphConfigCallback methods ***/ static inline HRESULT IGraphConfigCallback_Reconfigure(IGraphConfigCallback* This,PVOID pvContext,DWORD dwFlags) { return This->lpVtbl->Reconfigure(This,pvContext,dwFlags); } #endif #endif #endif #endif /* __IGraphConfigCallback_INTERFACE_DEFINED__ */ /***************************************************************************** * 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) MIDL_INTERFACE("dcfbdcf6-0dc2-45f5-9ab2-7c330ea09c29") 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; }; #ifdef __CRT_UUID_DECL __CRT_UUID_DECL(IFilterChain, 0xdcfbdcf6, 0x0dc2, 0x45f5, 0x9a,0xb2, 0x7c,0x33,0x0e,0xa0,0x9c,0x29) #endif #else typedef struct IFilterChainVtbl { BEGIN_INTERFACE /*** 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); END_INTERFACE } IFilterChainVtbl; interface IFilterChain { CONST_VTBL IFilterChainVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ #define IFilterChain_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IFilterChain_AddRef(This) (This)->lpVtbl->AddRef(This) #define IFilterChain_Release(This) (This)->lpVtbl->Release(This) /*** IFilterChain methods ***/ #define IFilterChain_StartChain(This,pStartFilter,pEndFilter) (This)->lpVtbl->StartChain(This,pStartFilter,pEndFilter) #define IFilterChain_PauseChain(This,pStartFilter,pEndFilter) (This)->lpVtbl->PauseChain(This,pStartFilter,pEndFilter) #define IFilterChain_StopChain(This,pStartFilter,pEndFilter) (This)->lpVtbl->StopChain(This,pStartFilter,pEndFilter) #define IFilterChain_RemoveChain(This,pStartFilter,pEndFilter) (This)->lpVtbl->RemoveChain(This,pStartFilter,pEndFilter) #else /*** IUnknown methods ***/ static inline HRESULT IFilterChain_QueryInterface(IFilterChain* This,REFIID riid,void **ppvObject) { return This->lpVtbl->QueryInterface(This,riid,ppvObject); } static inline ULONG IFilterChain_AddRef(IFilterChain* This) { return This->lpVtbl->AddRef(This); } static inline ULONG IFilterChain_Release(IFilterChain* This) { return This->lpVtbl->Release(This); } /*** IFilterChain methods ***/ static inline HRESULT IFilterChain_StartChain(IFilterChain* This,IBaseFilter *pStartFilter,IBaseFilter *pEndFilter) { return This->lpVtbl->StartChain(This,pStartFilter,pEndFilter); } static inline HRESULT IFilterChain_PauseChain(IFilterChain* This,IBaseFilter *pStartFilter,IBaseFilter *pEndFilter) { return This->lpVtbl->PauseChain(This,pStartFilter,pEndFilter); } static inline HRESULT IFilterChain_StopChain(IFilterChain* This,IBaseFilter *pStartFilter,IBaseFilter *pEndFilter) { return This->lpVtbl->StopChain(This,pStartFilter,pEndFilter); } static inline HRESULT IFilterChain_RemoveChain(IFilterChain* This,IBaseFilter *pStartFilter,IBaseFilter *pEndFilter) { return This->lpVtbl->RemoveChain(This,pStartFilter,pEndFilter); } #endif #endif #endif #endif /* __IFilterChain_INTERFACE_DEFINED__ */ #if 0 typedef DWORD IDirectDrawSurface7; typedef DWORD IDirectDraw7; typedef DWORD *LPBITMAPINFOHEADER; typedef DWORD *LPDDPIXELFORMAT; typedef struct __WIDL_strmif_generated_name_00000015 { DWORD dw1; DWORD dw2; } DDCOLORKEY; #endif #include #ifndef __IVMRSurface_FWD_DEFINED__ #define __IVMRSurface_FWD_DEFINED__ typedef interface IVMRSurface IVMRSurface; #ifdef __cplusplus interface IVMRSurface; #endif /* __cplusplus */ #endif #ifndef __IVMRSurfaceAllocator_FWD_DEFINED__ #define __IVMRSurfaceAllocator_FWD_DEFINED__ typedef interface IVMRSurfaceAllocator IVMRSurfaceAllocator; #ifdef __cplusplus interface IVMRSurfaceAllocator; #endif /* __cplusplus */ #endif #ifndef __IVMRSurfaceAllocatorNotify_FWD_DEFINED__ #define __IVMRSurfaceAllocatorNotify_FWD_DEFINED__ typedef interface IVMRSurfaceAllocatorNotify IVMRSurfaceAllocatorNotify; #ifdef __cplusplus interface IVMRSurfaceAllocatorNotify; #endif /* __cplusplus */ #endif #ifndef __IVMRImagePresenter_FWD_DEFINED__ #define __IVMRImagePresenter_FWD_DEFINED__ typedef interface IVMRImagePresenter IVMRImagePresenter; #ifdef __cplusplus interface IVMRImagePresenter; #endif /* __cplusplus */ #endif #ifndef __IVMRImagePresenterNotify_FWD_DEFINED__ #define __IVMRImagePresenterNotify_FWD_DEFINED__ typedef interface IVMRImagePresenterNotify IVMRImagePresenterNotify; #ifdef __cplusplus interface IVMRImagePresenterNotify; #endif /* __cplusplus */ #endif #ifndef __IVMRWindowlessControl_FWD_DEFINED__ #define __IVMRWindowlessControl_FWD_DEFINED__ typedef interface IVMRWindowlessControl IVMRWindowlessControl; #ifdef __cplusplus interface IVMRWindowlessControl; #endif /* __cplusplus */ #endif #ifndef __IVMRMixerControl_FWD_DEFINED__ #define __IVMRMixerControl_FWD_DEFINED__ typedef interface IVMRMixerControl IVMRMixerControl; #ifdef __cplusplus interface IVMRMixerControl; #endif /* __cplusplus */ #endif #ifndef __IVMRMixerBitmap_FWD_DEFINED__ #define __IVMRMixerBitmap_FWD_DEFINED__ typedef interface IVMRMixerBitmap IVMRMixerBitmap; #ifdef __cplusplus interface IVMRMixerBitmap; #endif /* __cplusplus */ #endif #ifndef __IVMRFilterConfig_FWD_DEFINED__ #define __IVMRFilterConfig_FWD_DEFINED__ typedef interface IVMRFilterConfig IVMRFilterConfig; #ifdef __cplusplus interface IVMRFilterConfig; #endif /* __cplusplus */ #endif #ifndef __IVMRAspectRatioControl_FWD_DEFINED__ #define __IVMRAspectRatioControl_FWD_DEFINED__ typedef interface IVMRAspectRatioControl IVMRAspectRatioControl; #ifdef __cplusplus interface IVMRAspectRatioControl; #endif /* __cplusplus */ #endif #ifndef __IVMRDeinterlaceControl_FWD_DEFINED__ #define __IVMRDeinterlaceControl_FWD_DEFINED__ typedef interface IVMRDeinterlaceControl IVMRDeinterlaceControl; #ifdef __cplusplus interface IVMRDeinterlaceControl; #endif /* __cplusplus */ #endif #ifndef __IVMRMonitorConfig_FWD_DEFINED__ #define __IVMRMonitorConfig_FWD_DEFINED__ typedef interface IVMRMonitorConfig IVMRMonitorConfig; #ifdef __cplusplus interface IVMRMonitorConfig; #endif /* __cplusplus */ #endif #ifndef __IVMRImageCompositor_FWD_DEFINED__ #define __IVMRImageCompositor_FWD_DEFINED__ typedef interface IVMRImageCompositor IVMRImageCompositor; #ifdef __cplusplus interface IVMRImageCompositor; #endif /* __cplusplus */ #endif #ifndef __IVMRVideoStreamControl_FWD_DEFINED__ #define __IVMRVideoStreamControl_FWD_DEFINED__ typedef interface IVMRVideoStreamControl IVMRVideoStreamControl; #ifdef __cplusplus interface IVMRVideoStreamControl; #endif /* __cplusplus */ #endif typedef enum _VMRPresentationFlags { VMRSample_SyncPoint = 0x1, VMRSample_Preroll = 0x2, VMRSample_Discontinuity = 0x4, VMRSample_TimeValid = 0x8, VMRSample_SrcDstRectsValid = 0x10 } VMRPresentationFlags; typedef struct tagVMRPRESENTATIONINFO { DWORD dwFlags; IDirectDrawSurface7 *lpSurf; REFERENCE_TIME rtStart; REFERENCE_TIME rtEnd; SIZE szAspectRatio; RECT rcSrc; RECT rcDst; DWORD dwTypeSpecificFlags; DWORD dwInterlaceFlags; } VMRPRESENTATIONINFO; /***************************************************************************** * IVMRImagePresenter interface */ #ifndef __IVMRImagePresenter_INTERFACE_DEFINED__ #define __IVMRImagePresenter_INTERFACE_DEFINED__ DEFINE_GUID(IID_IVMRImagePresenter, 0xce704fe7, 0xe71e, 0x41fb, 0xba,0xa2, 0xc4,0x40,0x3e,0x11,0x82,0xf5); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("ce704fe7-e71e-41fb-baa2-c4403e1182f5") IVMRImagePresenter : public IUnknown { virtual HRESULT STDMETHODCALLTYPE StartPresenting( DWORD_PTR id) = 0; virtual HRESULT STDMETHODCALLTYPE StopPresenting( DWORD_PTR id) = 0; virtual HRESULT STDMETHODCALLTYPE PresentImage( DWORD_PTR id, VMRPRESENTATIONINFO *info) = 0; }; #ifdef __CRT_UUID_DECL __CRT_UUID_DECL(IVMRImagePresenter, 0xce704fe7, 0xe71e, 0x41fb, 0xba,0xa2, 0xc4,0x40,0x3e,0x11,0x82,0xf5) #endif #else typedef struct IVMRImagePresenterVtbl { BEGIN_INTERFACE /*** IUnknown methods ***/ HRESULT (STDMETHODCALLTYPE *QueryInterface)( IVMRImagePresenter *This, REFIID riid, void **ppvObject); ULONG (STDMETHODCALLTYPE *AddRef)( IVMRImagePresenter *This); ULONG (STDMETHODCALLTYPE *Release)( IVMRImagePresenter *This); /*** IVMRImagePresenter methods ***/ HRESULT (STDMETHODCALLTYPE *StartPresenting)( IVMRImagePresenter *This, DWORD_PTR id); HRESULT (STDMETHODCALLTYPE *StopPresenting)( IVMRImagePresenter *This, DWORD_PTR id); HRESULT (STDMETHODCALLTYPE *PresentImage)( IVMRImagePresenter *This, DWORD_PTR id, VMRPRESENTATIONINFO *info); END_INTERFACE } IVMRImagePresenterVtbl; interface IVMRImagePresenter { CONST_VTBL IVMRImagePresenterVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ #define IVMRImagePresenter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IVMRImagePresenter_AddRef(This) (This)->lpVtbl->AddRef(This) #define IVMRImagePresenter_Release(This) (This)->lpVtbl->Release(This) /*** IVMRImagePresenter methods ***/ #define IVMRImagePresenter_StartPresenting(This,id) (This)->lpVtbl->StartPresenting(This,id) #define IVMRImagePresenter_StopPresenting(This,id) (This)->lpVtbl->StopPresenting(This,id) #define IVMRImagePresenter_PresentImage(This,id,info) (This)->lpVtbl->PresentImage(This,id,info) #else /*** IUnknown methods ***/ static inline HRESULT IVMRImagePresenter_QueryInterface(IVMRImagePresenter* This,REFIID riid,void **ppvObject) { return This->lpVtbl->QueryInterface(This,riid,ppvObject); } static inline ULONG IVMRImagePresenter_AddRef(IVMRImagePresenter* This) { return This->lpVtbl->AddRef(This); } static inline ULONG IVMRImagePresenter_Release(IVMRImagePresenter* This) { return This->lpVtbl->Release(This); } /*** IVMRImagePresenter methods ***/ static inline HRESULT IVMRImagePresenter_StartPresenting(IVMRImagePresenter* This,DWORD_PTR id) { return This->lpVtbl->StartPresenting(This,id); } static inline HRESULT IVMRImagePresenter_StopPresenting(IVMRImagePresenter* This,DWORD_PTR id) { return This->lpVtbl->StopPresenting(This,id); } static inline HRESULT IVMRImagePresenter_PresentImage(IVMRImagePresenter* This,DWORD_PTR id,VMRPRESENTATIONINFO *info) { return This->lpVtbl->PresentImage(This,id,info); } #endif #endif #endif #endif /* __IVMRImagePresenter_INTERFACE_DEFINED__ */ typedef enum _VMRSurfaceAllocationFlags { AMAP_PIXELFORMAT_VALID = 0x1, AMAP_3D_TARGET = 0x2, AMAP_ALLOW_SYSMEM = 0x4, AMAP_FORCE_SYSMEM = 0x8, AMAP_DIRECTED_FLIP = 0x10, AMAP_DXVA_TARGET = 0x20 } VMRSurfaceAllocationFlags; typedef struct tagVMRALLOCATIONINFO { DWORD dwFlags; LPBITMAPINFOHEADER lpHdr; LPDDPIXELFORMAT lpPixFmt; SIZE szAspectRatio; DWORD dwMinBuffers; DWORD dwMaxBuffers; DWORD dwInterlaceFlags; SIZE szNativeSize; } VMRALLOCATIONINFO; /***************************************************************************** * IVMRSurfaceAllocator interface */ #ifndef __IVMRSurfaceAllocator_INTERFACE_DEFINED__ #define __IVMRSurfaceAllocator_INTERFACE_DEFINED__ DEFINE_GUID(IID_IVMRSurfaceAllocator, 0x31ce832e, 0x4484, 0x458b, 0x8c,0xca, 0xf4,0xd7,0xe3,0xdb,0x0b,0x52); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("31ce832e-4484-458b-8cca-f4d7e3db0b52") IVMRSurfaceAllocator : public IUnknown { virtual HRESULT STDMETHODCALLTYPE AllocateSurface( DWORD_PTR id, VMRALLOCATIONINFO *allocinfo, DWORD *buffers, IDirectDrawSurface7 **surface) = 0; virtual HRESULT STDMETHODCALLTYPE FreeSurface( DWORD_PTR id) = 0; virtual HRESULT STDMETHODCALLTYPE PrepareSurface( DWORD_PTR id, IDirectDrawSurface7 *surface, DWORD dwSurfaceFlags) = 0; virtual HRESULT STDMETHODCALLTYPE AdviseNotify( IVMRSurfaceAllocatorNotify *notify) = 0; }; #ifdef __CRT_UUID_DECL __CRT_UUID_DECL(IVMRSurfaceAllocator, 0x31ce832e, 0x4484, 0x458b, 0x8c,0xca, 0xf4,0xd7,0xe3,0xdb,0x0b,0x52) #endif #else typedef struct IVMRSurfaceAllocatorVtbl { BEGIN_INTERFACE /*** IUnknown methods ***/ HRESULT (STDMETHODCALLTYPE *QueryInterface)( IVMRSurfaceAllocator *This, REFIID riid, void **ppvObject); ULONG (STDMETHODCALLTYPE *AddRef)( IVMRSurfaceAllocator *This); ULONG (STDMETHODCALLTYPE *Release)( IVMRSurfaceAllocator *This); /*** IVMRSurfaceAllocator methods ***/ HRESULT (STDMETHODCALLTYPE *AllocateSurface)( IVMRSurfaceAllocator *This, DWORD_PTR id, VMRALLOCATIONINFO *allocinfo, DWORD *buffers, IDirectDrawSurface7 **surface); HRESULT (STDMETHODCALLTYPE *FreeSurface)( IVMRSurfaceAllocator *This, DWORD_PTR id); HRESULT (STDMETHODCALLTYPE *PrepareSurface)( IVMRSurfaceAllocator *This, DWORD_PTR id, IDirectDrawSurface7 *surface, DWORD dwSurfaceFlags); HRESULT (STDMETHODCALLTYPE *AdviseNotify)( IVMRSurfaceAllocator *This, IVMRSurfaceAllocatorNotify *notify); END_INTERFACE } IVMRSurfaceAllocatorVtbl; interface IVMRSurfaceAllocator { CONST_VTBL IVMRSurfaceAllocatorVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ #define IVMRSurfaceAllocator_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IVMRSurfaceAllocator_AddRef(This) (This)->lpVtbl->AddRef(This) #define IVMRSurfaceAllocator_Release(This) (This)->lpVtbl->Release(This) /*** IVMRSurfaceAllocator methods ***/ #define IVMRSurfaceAllocator_AllocateSurface(This,id,allocinfo,buffers,surface) (This)->lpVtbl->AllocateSurface(This,id,allocinfo,buffers,surface) #define IVMRSurfaceAllocator_FreeSurface(This,id) (This)->lpVtbl->FreeSurface(This,id) #define IVMRSurfaceAllocator_PrepareSurface(This,id,surface,dwSurfaceFlags) (This)->lpVtbl->PrepareSurface(This,id,surface,dwSurfaceFlags) #define IVMRSurfaceAllocator_AdviseNotify(This,notify) (This)->lpVtbl->AdviseNotify(This,notify) #else /*** IUnknown methods ***/ static inline HRESULT IVMRSurfaceAllocator_QueryInterface(IVMRSurfaceAllocator* This,REFIID riid,void **ppvObject) { return This->lpVtbl->QueryInterface(This,riid,ppvObject); } static inline ULONG IVMRSurfaceAllocator_AddRef(IVMRSurfaceAllocator* This) { return This->lpVtbl->AddRef(This); } static inline ULONG IVMRSurfaceAllocator_Release(IVMRSurfaceAllocator* This) { return This->lpVtbl->Release(This); } /*** IVMRSurfaceAllocator methods ***/ static inline HRESULT IVMRSurfaceAllocator_AllocateSurface(IVMRSurfaceAllocator* This,DWORD_PTR id,VMRALLOCATIONINFO *allocinfo,DWORD *buffers,IDirectDrawSurface7 **surface) { return This->lpVtbl->AllocateSurface(This,id,allocinfo,buffers,surface); } static inline HRESULT IVMRSurfaceAllocator_FreeSurface(IVMRSurfaceAllocator* This,DWORD_PTR id) { return This->lpVtbl->FreeSurface(This,id); } static inline HRESULT IVMRSurfaceAllocator_PrepareSurface(IVMRSurfaceAllocator* This,DWORD_PTR id,IDirectDrawSurface7 *surface,DWORD dwSurfaceFlags) { return This->lpVtbl->PrepareSurface(This,id,surface,dwSurfaceFlags); } static inline HRESULT IVMRSurfaceAllocator_AdviseNotify(IVMRSurfaceAllocator* This,IVMRSurfaceAllocatorNotify *notify) { return This->lpVtbl->AdviseNotify(This,notify); } #endif #endif #endif #endif /* __IVMRSurfaceAllocator_INTERFACE_DEFINED__ */ /***************************************************************************** * IVMRSurfaceAllocatorNotify interface */ #ifndef __IVMRSurfaceAllocatorNotify_INTERFACE_DEFINED__ #define __IVMRSurfaceAllocatorNotify_INTERFACE_DEFINED__ DEFINE_GUID(IID_IVMRSurfaceAllocatorNotify, 0xaada05a8, 0x5a4e, 0x4729, 0xaf,0x0b, 0xce,0xa2,0x7a,0xed,0x51,0xe2); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("aada05a8-5a4e-4729-af0b-cea27aed51e2") IVMRSurfaceAllocatorNotify : public IUnknown { virtual HRESULT STDMETHODCALLTYPE AdviseSurfaceAllocator( DWORD_PTR id, IVMRSurfaceAllocator *allocator) = 0; virtual HRESULT STDMETHODCALLTYPE SetDDrawDevice( IDirectDraw7 *device, HMONITOR monitor) = 0; virtual HRESULT STDMETHODCALLTYPE ChangeDDrawDevice( IDirectDraw7 *device, HMONITOR monitor) = 0; virtual HRESULT STDMETHODCALLTYPE RestoreDDrawSurfaces( ) = 0; virtual HRESULT STDMETHODCALLTYPE NotifyEvent( LONG EventCode, LONG_PTR p1, LONG_PTR p2) = 0; virtual HRESULT STDMETHODCALLTYPE SetBorderColor( COLORREF border) = 0; }; #ifdef __CRT_UUID_DECL __CRT_UUID_DECL(IVMRSurfaceAllocatorNotify, 0xaada05a8, 0x5a4e, 0x4729, 0xaf,0x0b, 0xce,0xa2,0x7a,0xed,0x51,0xe2) #endif #else typedef struct IVMRSurfaceAllocatorNotifyVtbl { BEGIN_INTERFACE /*** IUnknown methods ***/ HRESULT (STDMETHODCALLTYPE *QueryInterface)( IVMRSurfaceAllocatorNotify *This, REFIID riid, void **ppvObject); ULONG (STDMETHODCALLTYPE *AddRef)( IVMRSurfaceAllocatorNotify *This); ULONG (STDMETHODCALLTYPE *Release)( IVMRSurfaceAllocatorNotify *This); /*** IVMRSurfaceAllocatorNotify methods ***/ HRESULT (STDMETHODCALLTYPE *AdviseSurfaceAllocator)( IVMRSurfaceAllocatorNotify *This, DWORD_PTR id, IVMRSurfaceAllocator *allocator); HRESULT (STDMETHODCALLTYPE *SetDDrawDevice)( IVMRSurfaceAllocatorNotify *This, IDirectDraw7 *device, HMONITOR monitor); HRESULT (STDMETHODCALLTYPE *ChangeDDrawDevice)( IVMRSurfaceAllocatorNotify *This, IDirectDraw7 *device, HMONITOR monitor); HRESULT (STDMETHODCALLTYPE *RestoreDDrawSurfaces)( IVMRSurfaceAllocatorNotify *This); HRESULT (STDMETHODCALLTYPE *NotifyEvent)( IVMRSurfaceAllocatorNotify *This, LONG EventCode, LONG_PTR p1, LONG_PTR p2); HRESULT (STDMETHODCALLTYPE *SetBorderColor)( IVMRSurfaceAllocatorNotify *This, COLORREF border); END_INTERFACE } IVMRSurfaceAllocatorNotifyVtbl; interface IVMRSurfaceAllocatorNotify { CONST_VTBL IVMRSurfaceAllocatorNotifyVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ #define IVMRSurfaceAllocatorNotify_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IVMRSurfaceAllocatorNotify_AddRef(This) (This)->lpVtbl->AddRef(This) #define IVMRSurfaceAllocatorNotify_Release(This) (This)->lpVtbl->Release(This) /*** IVMRSurfaceAllocatorNotify methods ***/ #define IVMRSurfaceAllocatorNotify_AdviseSurfaceAllocator(This,id,allocator) (This)->lpVtbl->AdviseSurfaceAllocator(This,id,allocator) #define IVMRSurfaceAllocatorNotify_SetDDrawDevice(This,device,monitor) (This)->lpVtbl->SetDDrawDevice(This,device,monitor) #define IVMRSurfaceAllocatorNotify_ChangeDDrawDevice(This,device,monitor) (This)->lpVtbl->ChangeDDrawDevice(This,device,monitor) #define IVMRSurfaceAllocatorNotify_RestoreDDrawSurfaces(This) (This)->lpVtbl->RestoreDDrawSurfaces(This) #define IVMRSurfaceAllocatorNotify_NotifyEvent(This,EventCode,p1,p2) (This)->lpVtbl->NotifyEvent(This,EventCode,p1,p2) #define IVMRSurfaceAllocatorNotify_SetBorderColor(This,border) (This)->lpVtbl->SetBorderColor(This,border) #else /*** IUnknown methods ***/ static inline HRESULT IVMRSurfaceAllocatorNotify_QueryInterface(IVMRSurfaceAllocatorNotify* This,REFIID riid,void **ppvObject) { return This->lpVtbl->QueryInterface(This,riid,ppvObject); } static inline ULONG IVMRSurfaceAllocatorNotify_AddRef(IVMRSurfaceAllocatorNotify* This) { return This->lpVtbl->AddRef(This); } static inline ULONG IVMRSurfaceAllocatorNotify_Release(IVMRSurfaceAllocatorNotify* This) { return This->lpVtbl->Release(This); } /*** IVMRSurfaceAllocatorNotify methods ***/ static inline HRESULT IVMRSurfaceAllocatorNotify_AdviseSurfaceAllocator(IVMRSurfaceAllocatorNotify* This,DWORD_PTR id,IVMRSurfaceAllocator *allocator) { return This->lpVtbl->AdviseSurfaceAllocator(This,id,allocator); } static inline HRESULT IVMRSurfaceAllocatorNotify_SetDDrawDevice(IVMRSurfaceAllocatorNotify* This,IDirectDraw7 *device,HMONITOR monitor) { return This->lpVtbl->SetDDrawDevice(This,device,monitor); } static inline HRESULT IVMRSurfaceAllocatorNotify_ChangeDDrawDevice(IVMRSurfaceAllocatorNotify* This,IDirectDraw7 *device,HMONITOR monitor) { return This->lpVtbl->ChangeDDrawDevice(This,device,monitor); } static inline HRESULT IVMRSurfaceAllocatorNotify_RestoreDDrawSurfaces(IVMRSurfaceAllocatorNotify* This) { return This->lpVtbl->RestoreDDrawSurfaces(This); } static inline HRESULT IVMRSurfaceAllocatorNotify_NotifyEvent(IVMRSurfaceAllocatorNotify* This,LONG EventCode,LONG_PTR p1,LONG_PTR p2) { return This->lpVtbl->NotifyEvent(This,EventCode,p1,p2); } static inline HRESULT IVMRSurfaceAllocatorNotify_SetBorderColor(IVMRSurfaceAllocatorNotify* This,COLORREF border) { return This->lpVtbl->SetBorderColor(This,border); } #endif #endif #endif #endif /* __IVMRSurfaceAllocatorNotify_INTERFACE_DEFINED__ */ typedef enum _VMR_ASPECT_RATIO_MODE { VMR_ARMODE_NONE = 0, VMR_ARMODE_LETTER_BOX = 1 } VMR_ASPECT_RATIO_MODE; /***************************************************************************** * IVMRWindowlessControl interface */ #ifndef __IVMRWindowlessControl_INTERFACE_DEFINED__ #define __IVMRWindowlessControl_INTERFACE_DEFINED__ DEFINE_GUID(IID_IVMRWindowlessControl, 0x0eb1088c, 0x4dcd, 0x46f0, 0x87,0x8f, 0x39,0xda,0xe8,0x6a,0x51,0xb7); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("0eb1088c-4dcd-46f0-878f-39dae86a51b7") IVMRWindowlessControl : public IUnknown { virtual HRESULT STDMETHODCALLTYPE GetNativeVideoSize( LONG *width, LONG *height, LONG *ar_width, LONG *ar_height) = 0; virtual HRESULT STDMETHODCALLTYPE GetMinIdealVideoSize( LONG *width, LONG *height) = 0; virtual HRESULT STDMETHODCALLTYPE GetMaxIdealVideoSize( LONG *width, LONG *height) = 0; virtual HRESULT STDMETHODCALLTYPE SetVideoPosition( const RECT *src_rect, const RECT *dst_rect) = 0; virtual HRESULT STDMETHODCALLTYPE GetVideoPosition( RECT *src_rect, RECT *dst_rect) = 0; virtual HRESULT STDMETHODCALLTYPE GetAspectRatioMode( DWORD *mode) = 0; virtual HRESULT STDMETHODCALLTYPE SetAspectRatioMode( DWORD mode) = 0; virtual HRESULT STDMETHODCALLTYPE SetVideoClippingWindow( HWND hwnd) = 0; virtual HRESULT STDMETHODCALLTYPE RepaintVideo( HWND hwnd, HDC hdc) = 0; virtual HRESULT STDMETHODCALLTYPE DisplayModeChanged( ) = 0; virtual HRESULT STDMETHODCALLTYPE GetCurrentImage( BYTE **data) = 0; virtual HRESULT STDMETHODCALLTYPE SetBorderColor( COLORREF border) = 0; virtual HRESULT STDMETHODCALLTYPE GetBorderColor( COLORREF *border) = 0; virtual HRESULT STDMETHODCALLTYPE SetColorKey( COLORREF key) = 0; virtual HRESULT STDMETHODCALLTYPE GetColorKey( COLORREF *key) = 0; }; #ifdef __CRT_UUID_DECL __CRT_UUID_DECL(IVMRWindowlessControl, 0x0eb1088c, 0x4dcd, 0x46f0, 0x87,0x8f, 0x39,0xda,0xe8,0x6a,0x51,0xb7) #endif #else typedef struct IVMRWindowlessControlVtbl { BEGIN_INTERFACE /*** IUnknown methods ***/ HRESULT (STDMETHODCALLTYPE *QueryInterface)( IVMRWindowlessControl *This, REFIID riid, void **ppvObject); ULONG (STDMETHODCALLTYPE *AddRef)( IVMRWindowlessControl *This); ULONG (STDMETHODCALLTYPE *Release)( IVMRWindowlessControl *This); /*** IVMRWindowlessControl methods ***/ HRESULT (STDMETHODCALLTYPE *GetNativeVideoSize)( IVMRWindowlessControl *This, LONG *width, LONG *height, LONG *ar_width, LONG *ar_height); HRESULT (STDMETHODCALLTYPE *GetMinIdealVideoSize)( IVMRWindowlessControl *This, LONG *width, LONG *height); HRESULT (STDMETHODCALLTYPE *GetMaxIdealVideoSize)( IVMRWindowlessControl *This, LONG *width, LONG *height); HRESULT (STDMETHODCALLTYPE *SetVideoPosition)( IVMRWindowlessControl *This, const RECT *src_rect, const RECT *dst_rect); HRESULT (STDMETHODCALLTYPE *GetVideoPosition)( IVMRWindowlessControl *This, RECT *src_rect, RECT *dst_rect); HRESULT (STDMETHODCALLTYPE *GetAspectRatioMode)( IVMRWindowlessControl *This, DWORD *mode); HRESULT (STDMETHODCALLTYPE *SetAspectRatioMode)( IVMRWindowlessControl *This, DWORD mode); HRESULT (STDMETHODCALLTYPE *SetVideoClippingWindow)( IVMRWindowlessControl *This, HWND hwnd); HRESULT (STDMETHODCALLTYPE *RepaintVideo)( IVMRWindowlessControl *This, HWND hwnd, HDC hdc); HRESULT (STDMETHODCALLTYPE *DisplayModeChanged)( IVMRWindowlessControl *This); HRESULT (STDMETHODCALLTYPE *GetCurrentImage)( IVMRWindowlessControl *This, BYTE **data); HRESULT (STDMETHODCALLTYPE *SetBorderColor)( IVMRWindowlessControl *This, COLORREF border); HRESULT (STDMETHODCALLTYPE *GetBorderColor)( IVMRWindowlessControl *This, COLORREF *border); HRESULT (STDMETHODCALLTYPE *SetColorKey)( IVMRWindowlessControl *This, COLORREF key); HRESULT (STDMETHODCALLTYPE *GetColorKey)( IVMRWindowlessControl *This, COLORREF *key); END_INTERFACE } IVMRWindowlessControlVtbl; interface IVMRWindowlessControl { CONST_VTBL IVMRWindowlessControlVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ #define IVMRWindowlessControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IVMRWindowlessControl_AddRef(This) (This)->lpVtbl->AddRef(This) #define IVMRWindowlessControl_Release(This) (This)->lpVtbl->Release(This) /*** IVMRWindowlessControl methods ***/ #define IVMRWindowlessControl_GetNativeVideoSize(This,width,height,ar_width,ar_height) (This)->lpVtbl->GetNativeVideoSize(This,width,height,ar_width,ar_height) #define IVMRWindowlessControl_GetMinIdealVideoSize(This,width,height) (This)->lpVtbl->GetMinIdealVideoSize(This,width,height) #define IVMRWindowlessControl_GetMaxIdealVideoSize(This,width,height) (This)->lpVtbl->GetMaxIdealVideoSize(This,width,height) #define IVMRWindowlessControl_SetVideoPosition(This,src_rect,dst_rect) (This)->lpVtbl->SetVideoPosition(This,src_rect,dst_rect) #define IVMRWindowlessControl_GetVideoPosition(This,src_rect,dst_rect) (This)->lpVtbl->GetVideoPosition(This,src_rect,dst_rect) #define IVMRWindowlessControl_GetAspectRatioMode(This,mode) (This)->lpVtbl->GetAspectRatioMode(This,mode) #define IVMRWindowlessControl_SetAspectRatioMode(This,mode) (This)->lpVtbl->SetAspectRatioMode(This,mode) #define IVMRWindowlessControl_SetVideoClippingWindow(This,hwnd) (This)->lpVtbl->SetVideoClippingWindow(This,hwnd) #define IVMRWindowlessControl_RepaintVideo(This,hwnd,hdc) (This)->lpVtbl->RepaintVideo(This,hwnd,hdc) #define IVMRWindowlessControl_DisplayModeChanged(This) (This)->lpVtbl->DisplayModeChanged(This) #define IVMRWindowlessControl_GetCurrentImage(This,data) (This)->lpVtbl->GetCurrentImage(This,data) #define IVMRWindowlessControl_SetBorderColor(This,border) (This)->lpVtbl->SetBorderColor(This,border) #define IVMRWindowlessControl_GetBorderColor(This,border) (This)->lpVtbl->GetBorderColor(This,border) #define IVMRWindowlessControl_SetColorKey(This,key) (This)->lpVtbl->SetColorKey(This,key) #define IVMRWindowlessControl_GetColorKey(This,key) (This)->lpVtbl->GetColorKey(This,key) #else /*** IUnknown methods ***/ static inline HRESULT IVMRWindowlessControl_QueryInterface(IVMRWindowlessControl* This,REFIID riid,void **ppvObject) { return This->lpVtbl->QueryInterface(This,riid,ppvObject); } static inline ULONG IVMRWindowlessControl_AddRef(IVMRWindowlessControl* This) { return This->lpVtbl->AddRef(This); } static inline ULONG IVMRWindowlessControl_Release(IVMRWindowlessControl* This) { return This->lpVtbl->Release(This); } /*** IVMRWindowlessControl methods ***/ static inline HRESULT IVMRWindowlessControl_GetNativeVideoSize(IVMRWindowlessControl* This,LONG *width,LONG *height,LONG *ar_width,LONG *ar_height) { return This->lpVtbl->GetNativeVideoSize(This,width,height,ar_width,ar_height); } static inline HRESULT IVMRWindowlessControl_GetMinIdealVideoSize(IVMRWindowlessControl* This,LONG *width,LONG *height) { return This->lpVtbl->GetMinIdealVideoSize(This,width,height); } static inline HRESULT IVMRWindowlessControl_GetMaxIdealVideoSize(IVMRWindowlessControl* This,LONG *width,LONG *height) { return This->lpVtbl->GetMaxIdealVideoSize(This,width,height); } static inline HRESULT IVMRWindowlessControl_SetVideoPosition(IVMRWindowlessControl* This,const RECT *src_rect,const RECT *dst_rect) { return This->lpVtbl->SetVideoPosition(This,src_rect,dst_rect); } static inline HRESULT IVMRWindowlessControl_GetVideoPosition(IVMRWindowlessControl* This,RECT *src_rect,RECT *dst_rect) { return This->lpVtbl->GetVideoPosition(This,src_rect,dst_rect); } static inline HRESULT IVMRWindowlessControl_GetAspectRatioMode(IVMRWindowlessControl* This,DWORD *mode) { return This->lpVtbl->GetAspectRatioMode(This,mode); } static inline HRESULT IVMRWindowlessControl_SetAspectRatioMode(IVMRWindowlessControl* This,DWORD mode) { return This->lpVtbl->SetAspectRatioMode(This,mode); } static inline HRESULT IVMRWindowlessControl_SetVideoClippingWindow(IVMRWindowlessControl* This,HWND hwnd) { return This->lpVtbl->SetVideoClippingWindow(This,hwnd); } static inline HRESULT IVMRWindowlessControl_RepaintVideo(IVMRWindowlessControl* This,HWND hwnd,HDC hdc) { return This->lpVtbl->RepaintVideo(This,hwnd,hdc); } static inline HRESULT IVMRWindowlessControl_DisplayModeChanged(IVMRWindowlessControl* This) { return This->lpVtbl->DisplayModeChanged(This); } static inline HRESULT IVMRWindowlessControl_GetCurrentImage(IVMRWindowlessControl* This,BYTE **data) { return This->lpVtbl->GetCurrentImage(This,data); } static inline HRESULT IVMRWindowlessControl_SetBorderColor(IVMRWindowlessControl* This,COLORREF border) { return This->lpVtbl->SetBorderColor(This,border); } static inline HRESULT IVMRWindowlessControl_GetBorderColor(IVMRWindowlessControl* This,COLORREF *border) { return This->lpVtbl->GetBorderColor(This,border); } static inline HRESULT IVMRWindowlessControl_SetColorKey(IVMRWindowlessControl* This,COLORREF key) { return This->lpVtbl->SetColorKey(This,key); } static inline HRESULT IVMRWindowlessControl_GetColorKey(IVMRWindowlessControl* This,COLORREF *key) { return This->lpVtbl->GetColorKey(This,key); } #endif #endif #endif #endif /* __IVMRWindowlessControl_INTERFACE_DEFINED__ */ typedef enum _VMRMixerPrefs { MixerPref_NoDecimation = 0x1, MixerPref_DecimateOutput = 0x2, MixerPref_ARAdjustXorY = 0x4, MixerPref_DecimationReserved = 0x8, MixerPref_DecimateMask = 0xf, MixerPref_BiLinearFiltering = 0x10, MixerPref_PointFiltering = 0x20, MixerPref_FinteringMask = 0xf0, MixerPref_RenderTargetRGB = 0x100, MixerPref_RenderTargetYUV = 0x1000, MixerPref_RenderTargetYUV420 = 0x200, MixerPref_RenderTargetYUV422 = 0x400, MixerPref_RenderTargetYUV444 = 0x800, MixerPref_RenderTargetReserved = 0xe000, MixerPref_RenderTargetMask = 0xff00, MixerPref_DynamicSwitchToBOB = 0x10000, MixerPref_DynamicDecimateBy2 = 0x20000, MixerPref_DynamicReserved = 0xc0000, MixerPref_DynamicMask = 0xf0000 } VMRMixerPrefs; typedef struct _NORMALIZEDRECT { FLOAT left; FLOAT top; FLOAT right; FLOAT bottom; } NORMALIZEDRECT; /***************************************************************************** * IVMRMixerControl interface */ #ifndef __IVMRMixerControl_INTERFACE_DEFINED__ #define __IVMRMixerControl_INTERFACE_DEFINED__ DEFINE_GUID(IID_IVMRMixerControl, 0x1c1a17b0, 0xbed0, 0x415d, 0x97,0x4b, 0xdc,0x66,0x96,0x13,0x15,0x99); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("1c1a17b0-bed0-415d-974b-dc6696131599") IVMRMixerControl : public IUnknown { virtual HRESULT STDMETHODCALLTYPE SetAlpha( DWORD id, FLOAT alpha) = 0; virtual HRESULT STDMETHODCALLTYPE GetAlpha( DWORD id, FLOAT *alpha) = 0; virtual HRESULT STDMETHODCALLTYPE SetZOrder( DWORD id, DWORD z) = 0; virtual HRESULT STDMETHODCALLTYPE GetZOrder( DWORD id, DWORD *z) = 0; virtual HRESULT STDMETHODCALLTYPE SetOutputRect( DWORD id, const NORMALIZEDRECT *rect) = 0; virtual HRESULT STDMETHODCALLTYPE SetBackgroundClr( COLORREF background) = 0; virtual HRESULT STDMETHODCALLTYPE GetBackgroundClr( COLORREF *background) = 0; virtual HRESULT STDMETHODCALLTYPE SetMixingPrefs( DWORD prefs) = 0; virtual HRESULT STDMETHODCALLTYPE GetMixingPrefs( DWORD *prefs) = 0; }; #ifdef __CRT_UUID_DECL __CRT_UUID_DECL(IVMRMixerControl, 0x1c1a17b0, 0xbed0, 0x415d, 0x97,0x4b, 0xdc,0x66,0x96,0x13,0x15,0x99) #endif #else typedef struct IVMRMixerControlVtbl { BEGIN_INTERFACE /*** IUnknown methods ***/ HRESULT (STDMETHODCALLTYPE *QueryInterface)( IVMRMixerControl *This, REFIID riid, void **ppvObject); ULONG (STDMETHODCALLTYPE *AddRef)( IVMRMixerControl *This); ULONG (STDMETHODCALLTYPE *Release)( IVMRMixerControl *This); /*** IVMRMixerControl methods ***/ HRESULT (STDMETHODCALLTYPE *SetAlpha)( IVMRMixerControl *This, DWORD id, FLOAT alpha); HRESULT (STDMETHODCALLTYPE *GetAlpha)( IVMRMixerControl *This, DWORD id, FLOAT *alpha); HRESULT (STDMETHODCALLTYPE *SetZOrder)( IVMRMixerControl *This, DWORD id, DWORD z); HRESULT (STDMETHODCALLTYPE *GetZOrder)( IVMRMixerControl *This, DWORD id, DWORD *z); HRESULT (STDMETHODCALLTYPE *SetOutputRect)( IVMRMixerControl *This, DWORD id, const NORMALIZEDRECT *rect); HRESULT (STDMETHODCALLTYPE *SetBackgroundClr)( IVMRMixerControl *This, COLORREF background); HRESULT (STDMETHODCALLTYPE *GetBackgroundClr)( IVMRMixerControl *This, COLORREF *background); HRESULT (STDMETHODCALLTYPE *SetMixingPrefs)( IVMRMixerControl *This, DWORD prefs); HRESULT (STDMETHODCALLTYPE *GetMixingPrefs)( IVMRMixerControl *This, DWORD *prefs); END_INTERFACE } IVMRMixerControlVtbl; interface IVMRMixerControl { CONST_VTBL IVMRMixerControlVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ #define IVMRMixerControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IVMRMixerControl_AddRef(This) (This)->lpVtbl->AddRef(This) #define IVMRMixerControl_Release(This) (This)->lpVtbl->Release(This) /*** IVMRMixerControl methods ***/ #define IVMRMixerControl_SetAlpha(This,id,alpha) (This)->lpVtbl->SetAlpha(This,id,alpha) #define IVMRMixerControl_GetAlpha(This,id,alpha) (This)->lpVtbl->GetAlpha(This,id,alpha) #define IVMRMixerControl_SetZOrder(This,id,z) (This)->lpVtbl->SetZOrder(This,id,z) #define IVMRMixerControl_GetZOrder(This,id,z) (This)->lpVtbl->GetZOrder(This,id,z) #define IVMRMixerControl_SetOutputRect(This,id,rect) (This)->lpVtbl->SetOutputRect(This,id,rect) #define IVMRMixerControl_SetBackgroundClr(This,background) (This)->lpVtbl->SetBackgroundClr(This,background) #define IVMRMixerControl_GetBackgroundClr(This,background) (This)->lpVtbl->GetBackgroundClr(This,background) #define IVMRMixerControl_SetMixingPrefs(This,prefs) (This)->lpVtbl->SetMixingPrefs(This,prefs) #define IVMRMixerControl_GetMixingPrefs(This,prefs) (This)->lpVtbl->GetMixingPrefs(This,prefs) #else /*** IUnknown methods ***/ static inline HRESULT IVMRMixerControl_QueryInterface(IVMRMixerControl* This,REFIID riid,void **ppvObject) { return This->lpVtbl->QueryInterface(This,riid,ppvObject); } static inline ULONG IVMRMixerControl_AddRef(IVMRMixerControl* This) { return This->lpVtbl->AddRef(This); } static inline ULONG IVMRMixerControl_Release(IVMRMixerControl* This) { return This->lpVtbl->Release(This); } /*** IVMRMixerControl methods ***/ static inline HRESULT IVMRMixerControl_SetAlpha(IVMRMixerControl* This,DWORD id,FLOAT alpha) { return This->lpVtbl->SetAlpha(This,id,alpha); } static inline HRESULT IVMRMixerControl_GetAlpha(IVMRMixerControl* This,DWORD id,FLOAT *alpha) { return This->lpVtbl->GetAlpha(This,id,alpha); } static inline HRESULT IVMRMixerControl_SetZOrder(IVMRMixerControl* This,DWORD id,DWORD z) { return This->lpVtbl->SetZOrder(This,id,z); } static inline HRESULT IVMRMixerControl_GetZOrder(IVMRMixerControl* This,DWORD id,DWORD *z) { return This->lpVtbl->GetZOrder(This,id,z); } static inline HRESULT IVMRMixerControl_SetOutputRect(IVMRMixerControl* This,DWORD id,const NORMALIZEDRECT *rect) { return This->lpVtbl->SetOutputRect(This,id,rect); } static inline HRESULT IVMRMixerControl_SetBackgroundClr(IVMRMixerControl* This,COLORREF background) { return This->lpVtbl->SetBackgroundClr(This,background); } static inline HRESULT IVMRMixerControl_GetBackgroundClr(IVMRMixerControl* This,COLORREF *background) { return This->lpVtbl->GetBackgroundClr(This,background); } static inline HRESULT IVMRMixerControl_SetMixingPrefs(IVMRMixerControl* This,DWORD prefs) { return This->lpVtbl->SetMixingPrefs(This,prefs); } static inline HRESULT IVMRMixerControl_GetMixingPrefs(IVMRMixerControl* This,DWORD *prefs) { return This->lpVtbl->GetMixingPrefs(This,prefs); } #endif #endif #endif #endif /* __IVMRMixerControl_INTERFACE_DEFINED__ */ typedef struct tagVMRGUID { struct _GUID *pGUID; struct _GUID GUID; } VMRGUID; typedef struct tagVMRMONITORINFO { VMRGUID guid; RECT rcMonitor; HMONITOR hMon; DWORD dwFlags; WCHAR szDevice[32]; WCHAR szDescription[256]; LARGE_INTEGER liDriverVersion; DWORD dwVendorId; DWORD dwDeviceId; DWORD dwSubSysId; DWORD dwRevision; } VMRMONITORINFO; /***************************************************************************** * IVMRMonitorConfig interface */ #ifndef __IVMRMonitorConfig_INTERFACE_DEFINED__ #define __IVMRMonitorConfig_INTERFACE_DEFINED__ DEFINE_GUID(IID_IVMRMonitorConfig, 0x9cf0b1b6, 0xfbaa, 0x4b7f, 0x88,0xcf, 0xcf,0x1f,0x13,0x0a,0x0d,0xce); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("9cf0b1b6-fbaa-4b7f-88cf-cf1f130a0dce") IVMRMonitorConfig : public IUnknown { virtual HRESULT STDMETHODCALLTYPE SetMonitor( const VMRGUID *vmrguid) = 0; virtual HRESULT STDMETHODCALLTYPE GetMonitor( VMRGUID *vmrguid) = 0; virtual HRESULT STDMETHODCALLTYPE SetDefaultMonitor( const VMRGUID *vmrguid) = 0; virtual HRESULT STDMETHODCALLTYPE GetDefaultMonitor( VMRGUID *vmrguid) = 0; virtual HRESULT STDMETHODCALLTYPE GetAvailableMonitors( VMRMONITORINFO *info, DWORD array_size, DWORD *retrieved) = 0; }; #ifdef __CRT_UUID_DECL __CRT_UUID_DECL(IVMRMonitorConfig, 0x9cf0b1b6, 0xfbaa, 0x4b7f, 0x88,0xcf, 0xcf,0x1f,0x13,0x0a,0x0d,0xce) #endif #else typedef struct IVMRMonitorConfigVtbl { BEGIN_INTERFACE /*** IUnknown methods ***/ HRESULT (STDMETHODCALLTYPE *QueryInterface)( IVMRMonitorConfig *This, REFIID riid, void **ppvObject); ULONG (STDMETHODCALLTYPE *AddRef)( IVMRMonitorConfig *This); ULONG (STDMETHODCALLTYPE *Release)( IVMRMonitorConfig *This); /*** IVMRMonitorConfig methods ***/ HRESULT (STDMETHODCALLTYPE *SetMonitor)( IVMRMonitorConfig *This, const VMRGUID *vmrguid); HRESULT (STDMETHODCALLTYPE *GetMonitor)( IVMRMonitorConfig *This, VMRGUID *vmrguid); HRESULT (STDMETHODCALLTYPE *SetDefaultMonitor)( IVMRMonitorConfig *This, const VMRGUID *vmrguid); HRESULT (STDMETHODCALLTYPE *GetDefaultMonitor)( IVMRMonitorConfig *This, VMRGUID *vmrguid); HRESULT (STDMETHODCALLTYPE *GetAvailableMonitors)( IVMRMonitorConfig *This, VMRMONITORINFO *info, DWORD array_size, DWORD *retrieved); END_INTERFACE } IVMRMonitorConfigVtbl; interface IVMRMonitorConfig { CONST_VTBL IVMRMonitorConfigVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ #define IVMRMonitorConfig_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IVMRMonitorConfig_AddRef(This) (This)->lpVtbl->AddRef(This) #define IVMRMonitorConfig_Release(This) (This)->lpVtbl->Release(This) /*** IVMRMonitorConfig methods ***/ #define IVMRMonitorConfig_SetMonitor(This,vmrguid) (This)->lpVtbl->SetMonitor(This,vmrguid) #define IVMRMonitorConfig_GetMonitor(This,vmrguid) (This)->lpVtbl->GetMonitor(This,vmrguid) #define IVMRMonitorConfig_SetDefaultMonitor(This,vmrguid) (This)->lpVtbl->SetDefaultMonitor(This,vmrguid) #define IVMRMonitorConfig_GetDefaultMonitor(This,vmrguid) (This)->lpVtbl->GetDefaultMonitor(This,vmrguid) #define IVMRMonitorConfig_GetAvailableMonitors(This,info,array_size,retrieved) (This)->lpVtbl->GetAvailableMonitors(This,info,array_size,retrieved) #else /*** IUnknown methods ***/ static inline HRESULT IVMRMonitorConfig_QueryInterface(IVMRMonitorConfig* This,REFIID riid,void **ppvObject) { return This->lpVtbl->QueryInterface(This,riid,ppvObject); } static inline ULONG IVMRMonitorConfig_AddRef(IVMRMonitorConfig* This) { return This->lpVtbl->AddRef(This); } static inline ULONG IVMRMonitorConfig_Release(IVMRMonitorConfig* This) { return This->lpVtbl->Release(This); } /*** IVMRMonitorConfig methods ***/ static inline HRESULT IVMRMonitorConfig_SetMonitor(IVMRMonitorConfig* This,const VMRGUID *vmrguid) { return This->lpVtbl->SetMonitor(This,vmrguid); } static inline HRESULT IVMRMonitorConfig_GetMonitor(IVMRMonitorConfig* This,VMRGUID *vmrguid) { return This->lpVtbl->GetMonitor(This,vmrguid); } static inline HRESULT IVMRMonitorConfig_SetDefaultMonitor(IVMRMonitorConfig* This,const VMRGUID *vmrguid) { return This->lpVtbl->SetDefaultMonitor(This,vmrguid); } static inline HRESULT IVMRMonitorConfig_GetDefaultMonitor(IVMRMonitorConfig* This,VMRGUID *vmrguid) { return This->lpVtbl->GetDefaultMonitor(This,vmrguid); } static inline HRESULT IVMRMonitorConfig_GetAvailableMonitors(IVMRMonitorConfig* This,VMRMONITORINFO *info,DWORD array_size,DWORD *retrieved) { return This->lpVtbl->GetAvailableMonitors(This,info,array_size,retrieved); } #endif #endif #endif #endif /* __IVMRMonitorConfig_INTERFACE_DEFINED__ */ typedef enum _VMRRenderPrefs { RenderPrefs_RestrictToInitialMonitor = 0x0, RenderPrefs_ForceOffScreen = 0x1, RenderPrefs_ForceOverlays = 0x2, RenderPrefs_AllowOverlays = 0x0, RenderPrefs_AllowOffscreen = 0x0, RenderPrefs_DoNotRenderColorKeyAndBorder = 0x8, RenderPrefs_Reserved = 0x10, RenderPrefs_PreferAGPMemWhenMixing = 0x20, RenderPrefs_Mask = 0x3f } VMRRenderPrefs; typedef enum _VMRMode { VMRMode_Windowed = 0x1, VMRMode_Windowless = 0x2, VMRMode_Renderless = 0x4, VMRMode_Mask = 0x7 } VMRMode; enum { MAX_NUMBER_OF_STREAMS = 16 }; /***************************************************************************** * IVMRFilterConfig interface */ #ifndef __IVMRFilterConfig_INTERFACE_DEFINED__ #define __IVMRFilterConfig_INTERFACE_DEFINED__ DEFINE_GUID(IID_IVMRFilterConfig, 0x9e5530c5, 0x7034, 0x48b4, 0xbb,0x46, 0x0b,0x8a,0x6e,0xfc,0x8e,0x36); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("9e5530c5-7034-48b4-bb46-0b8a6efc8e36") IVMRFilterConfig : public IUnknown { virtual HRESULT STDMETHODCALLTYPE SetImageCompositor( IVMRImageCompositor *compositor) = 0; virtual HRESULT STDMETHODCALLTYPE SetNumberOfStreams( DWORD streams) = 0; virtual HRESULT STDMETHODCALLTYPE GetNumberOfStreams( DWORD *streams) = 0; virtual HRESULT STDMETHODCALLTYPE SetRenderingPrefs( DWORD prefs) = 0; virtual HRESULT STDMETHODCALLTYPE GetRenderingPrefs( DWORD *prefs) = 0; virtual HRESULT STDMETHODCALLTYPE SetRenderingMode( DWORD mode) = 0; virtual HRESULT STDMETHODCALLTYPE GetRenderingMode( DWORD *mode) = 0; }; #ifdef __CRT_UUID_DECL __CRT_UUID_DECL(IVMRFilterConfig, 0x9e5530c5, 0x7034, 0x48b4, 0xbb,0x46, 0x0b,0x8a,0x6e,0xfc,0x8e,0x36) #endif #else typedef struct IVMRFilterConfigVtbl { BEGIN_INTERFACE /*** IUnknown methods ***/ HRESULT (STDMETHODCALLTYPE *QueryInterface)( IVMRFilterConfig *This, REFIID riid, void **ppvObject); ULONG (STDMETHODCALLTYPE *AddRef)( IVMRFilterConfig *This); ULONG (STDMETHODCALLTYPE *Release)( IVMRFilterConfig *This); /*** IVMRFilterConfig methods ***/ HRESULT (STDMETHODCALLTYPE *SetImageCompositor)( IVMRFilterConfig *This, IVMRImageCompositor *compositor); HRESULT (STDMETHODCALLTYPE *SetNumberOfStreams)( IVMRFilterConfig *This, DWORD streams); HRESULT (STDMETHODCALLTYPE *GetNumberOfStreams)( IVMRFilterConfig *This, DWORD *streams); HRESULT (STDMETHODCALLTYPE *SetRenderingPrefs)( IVMRFilterConfig *This, DWORD prefs); HRESULT (STDMETHODCALLTYPE *GetRenderingPrefs)( IVMRFilterConfig *This, DWORD *prefs); HRESULT (STDMETHODCALLTYPE *SetRenderingMode)( IVMRFilterConfig *This, DWORD mode); HRESULT (STDMETHODCALLTYPE *GetRenderingMode)( IVMRFilterConfig *This, DWORD *mode); END_INTERFACE } IVMRFilterConfigVtbl; interface IVMRFilterConfig { CONST_VTBL IVMRFilterConfigVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ #define IVMRFilterConfig_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IVMRFilterConfig_AddRef(This) (This)->lpVtbl->AddRef(This) #define IVMRFilterConfig_Release(This) (This)->lpVtbl->Release(This) /*** IVMRFilterConfig methods ***/ #define IVMRFilterConfig_SetImageCompositor(This,compositor) (This)->lpVtbl->SetImageCompositor(This,compositor) #define IVMRFilterConfig_SetNumberOfStreams(This,streams) (This)->lpVtbl->SetNumberOfStreams(This,streams) #define IVMRFilterConfig_GetNumberOfStreams(This,streams) (This)->lpVtbl->GetNumberOfStreams(This,streams) #define IVMRFilterConfig_SetRenderingPrefs(This,prefs) (This)->lpVtbl->SetRenderingPrefs(This,prefs) #define IVMRFilterConfig_GetRenderingPrefs(This,prefs) (This)->lpVtbl->GetRenderingPrefs(This,prefs) #define IVMRFilterConfig_SetRenderingMode(This,mode) (This)->lpVtbl->SetRenderingMode(This,mode) #define IVMRFilterConfig_GetRenderingMode(This,mode) (This)->lpVtbl->GetRenderingMode(This,mode) #else /*** IUnknown methods ***/ static inline HRESULT IVMRFilterConfig_QueryInterface(IVMRFilterConfig* This,REFIID riid,void **ppvObject) { return This->lpVtbl->QueryInterface(This,riid,ppvObject); } static inline ULONG IVMRFilterConfig_AddRef(IVMRFilterConfig* This) { return This->lpVtbl->AddRef(This); } static inline ULONG IVMRFilterConfig_Release(IVMRFilterConfig* This) { return This->lpVtbl->Release(This); } /*** IVMRFilterConfig methods ***/ static inline HRESULT IVMRFilterConfig_SetImageCompositor(IVMRFilterConfig* This,IVMRImageCompositor *compositor) { return This->lpVtbl->SetImageCompositor(This,compositor); } static inline HRESULT IVMRFilterConfig_SetNumberOfStreams(IVMRFilterConfig* This,DWORD streams) { return This->lpVtbl->SetNumberOfStreams(This,streams); } static inline HRESULT IVMRFilterConfig_GetNumberOfStreams(IVMRFilterConfig* This,DWORD *streams) { return This->lpVtbl->GetNumberOfStreams(This,streams); } static inline HRESULT IVMRFilterConfig_SetRenderingPrefs(IVMRFilterConfig* This,DWORD prefs) { return This->lpVtbl->SetRenderingPrefs(This,prefs); } static inline HRESULT IVMRFilterConfig_GetRenderingPrefs(IVMRFilterConfig* This,DWORD *prefs) { return This->lpVtbl->GetRenderingPrefs(This,prefs); } static inline HRESULT IVMRFilterConfig_SetRenderingMode(IVMRFilterConfig* This,DWORD mode) { return This->lpVtbl->SetRenderingMode(This,mode); } static inline HRESULT IVMRFilterConfig_GetRenderingMode(IVMRFilterConfig* This,DWORD *mode) { return This->lpVtbl->GetRenderingMode(This,mode); } #endif #endif #endif #endif /* __IVMRFilterConfig_INTERFACE_DEFINED__ */ /***************************************************************************** * IVMRAspectRatioControl interface */ #ifndef __IVMRAspectRatioControl_INTERFACE_DEFINED__ #define __IVMRAspectRatioControl_INTERFACE_DEFINED__ DEFINE_GUID(IID_IVMRAspectRatioControl, 0xede80b5c, 0xbad6, 0x4623, 0xb5,0x37, 0x65,0x58,0x6c,0x9f,0x8d,0xfd); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("ede80b5c-bad6-4623-b537-65586c9f8dfd") IVMRAspectRatioControl : public IUnknown { virtual HRESULT STDMETHODCALLTYPE GetAspectRatioMode( DWORD *armode) = 0; virtual HRESULT STDMETHODCALLTYPE SetAspectRatioMode( DWORD armode) = 0; }; #ifdef __CRT_UUID_DECL __CRT_UUID_DECL(IVMRAspectRatioControl, 0xede80b5c, 0xbad6, 0x4623, 0xb5,0x37, 0x65,0x58,0x6c,0x9f,0x8d,0xfd) #endif #else typedef struct IVMRAspectRatioControlVtbl { BEGIN_INTERFACE /*** IUnknown methods ***/ HRESULT (STDMETHODCALLTYPE *QueryInterface)( IVMRAspectRatioControl *This, REFIID riid, void **ppvObject); ULONG (STDMETHODCALLTYPE *AddRef)( IVMRAspectRatioControl *This); ULONG (STDMETHODCALLTYPE *Release)( IVMRAspectRatioControl *This); /*** IVMRAspectRatioControl methods ***/ HRESULT (STDMETHODCALLTYPE *GetAspectRatioMode)( IVMRAspectRatioControl *This, DWORD *armode); HRESULT (STDMETHODCALLTYPE *SetAspectRatioMode)( IVMRAspectRatioControl *This, DWORD armode); END_INTERFACE } IVMRAspectRatioControlVtbl; interface IVMRAspectRatioControl { CONST_VTBL IVMRAspectRatioControlVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ #define IVMRAspectRatioControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IVMRAspectRatioControl_AddRef(This) (This)->lpVtbl->AddRef(This) #define IVMRAspectRatioControl_Release(This) (This)->lpVtbl->Release(This) /*** IVMRAspectRatioControl methods ***/ #define IVMRAspectRatioControl_GetAspectRatioMode(This,armode) (This)->lpVtbl->GetAspectRatioMode(This,armode) #define IVMRAspectRatioControl_SetAspectRatioMode(This,armode) (This)->lpVtbl->SetAspectRatioMode(This,armode) #else /*** IUnknown methods ***/ static inline HRESULT IVMRAspectRatioControl_QueryInterface(IVMRAspectRatioControl* This,REFIID riid,void **ppvObject) { return This->lpVtbl->QueryInterface(This,riid,ppvObject); } static inline ULONG IVMRAspectRatioControl_AddRef(IVMRAspectRatioControl* This) { return This->lpVtbl->AddRef(This); } static inline ULONG IVMRAspectRatioControl_Release(IVMRAspectRatioControl* This) { return This->lpVtbl->Release(This); } /*** IVMRAspectRatioControl methods ***/ static inline HRESULT IVMRAspectRatioControl_GetAspectRatioMode(IVMRAspectRatioControl* This,DWORD *armode) { return This->lpVtbl->GetAspectRatioMode(This,armode); } static inline HRESULT IVMRAspectRatioControl_SetAspectRatioMode(IVMRAspectRatioControl* This,DWORD armode) { return This->lpVtbl->SetAspectRatioMode(This,armode); } #endif #endif #endif #endif /* __IVMRAspectRatioControl_INTERFACE_DEFINED__ */ typedef enum _VMRDeinterlacePrefs { DeinterlacePref_NextBest = 0x1, DeinterlacePref_BOB = 0x2, DeinterlacePref_Weave = 0x4, DeinterlacePref_Mask = 0x7 } VMRDeinterlacePrefs; typedef enum _VMRDeinterlaceTech { DeinterlaceTech_Unknown = 0x0, DeinterlaceTech_BOBLineReplicate = 0x1, DeinterlaceTech_BOBVerticalStretch = 0x2, DeinterlaceTech_MedianFiltering = 0x4, DeinterlaceTech_EdgeFiltering = 0x8, DeinterlaceTech_FieldAdaptive = 0x10, DeinterlaceTech_PixelAdaptive = 0x20, DeinterlaceTech_MotionVectorSteered = 0x80 } VMRDeinterlaceTech; typedef struct _VMRFrequency { DWORD dwNumerator; DWORD dwDenominator; } VMRFrequency; typedef struct _VMRVideoDesc { DWORD dwSize; DWORD dwSampleWidth; DWORD dwSampleHeight; BOOL SingleFieldPerSample; DWORD dwFourCC; VMRFrequency InputSampleFreq; VMRFrequency OutputFrameFreq; } VMRVideoDesc; typedef struct _VMRDeinterlaceCaps { DWORD dwSize; DWORD dwNumPreviousOutputFrames; DWORD dwNumForwardRefSamples; DWORD dwNumBackwardRefSamples; VMRDeinterlaceTech DeinterlaceTechnology; } VMRDeinterlaceCaps; /***************************************************************************** * IVMRDeinterlaceControl interface */ #ifndef __IVMRDeinterlaceControl_INTERFACE_DEFINED__ #define __IVMRDeinterlaceControl_INTERFACE_DEFINED__ DEFINE_GUID(IID_IVMRDeinterlaceControl, 0xbb057577, 0x0db8, 0x4e6a, 0x87,0xa7, 0x1a,0x8c,0x9a,0x50,0x5a,0x0f); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("bb057577-0db8-4e6a-87a7-1a8c9a505a0f") IVMRDeinterlaceControl : public IUnknown { virtual HRESULT STDMETHODCALLTYPE GetNumberOfDeinterlaceModes( VMRVideoDesc *desc, DWORD *num_modes, GUID *modes) = 0; virtual HRESULT STDMETHODCALLTYPE GetDeinterlaceModeCaps( GUID *mode, VMRVideoDesc *desc, VMRDeinterlaceCaps *caps) = 0; virtual HRESULT STDMETHODCALLTYPE GetDeinterlaceMode( DWORD id, GUID *mode) = 0; virtual HRESULT STDMETHODCALLTYPE SetDeinterlaceMode( DWORD id, GUID *mode) = 0; virtual HRESULT STDMETHODCALLTYPE GetDeinterlacePrefs( DWORD *prefs) = 0; virtual HRESULT STDMETHODCALLTYPE SetDeinterlacePrefs( DWORD prefs) = 0; virtual HRESULT STDMETHODCALLTYPE GetActualDeinterlaceMode( DWORD id, GUID *mode) = 0; }; #ifdef __CRT_UUID_DECL __CRT_UUID_DECL(IVMRDeinterlaceControl, 0xbb057577, 0x0db8, 0x4e6a, 0x87,0xa7, 0x1a,0x8c,0x9a,0x50,0x5a,0x0f) #endif #else typedef struct IVMRDeinterlaceControlVtbl { BEGIN_INTERFACE /*** IUnknown methods ***/ HRESULT (STDMETHODCALLTYPE *QueryInterface)( IVMRDeinterlaceControl *This, REFIID riid, void **ppvObject); ULONG (STDMETHODCALLTYPE *AddRef)( IVMRDeinterlaceControl *This); ULONG (STDMETHODCALLTYPE *Release)( IVMRDeinterlaceControl *This); /*** IVMRDeinterlaceControl methods ***/ HRESULT (STDMETHODCALLTYPE *GetNumberOfDeinterlaceModes)( IVMRDeinterlaceControl *This, VMRVideoDesc *desc, DWORD *num_modes, GUID *modes); HRESULT (STDMETHODCALLTYPE *GetDeinterlaceModeCaps)( IVMRDeinterlaceControl *This, GUID *mode, VMRVideoDesc *desc, VMRDeinterlaceCaps *caps); HRESULT (STDMETHODCALLTYPE *GetDeinterlaceMode)( IVMRDeinterlaceControl *This, DWORD id, GUID *mode); HRESULT (STDMETHODCALLTYPE *SetDeinterlaceMode)( IVMRDeinterlaceControl *This, DWORD id, GUID *mode); HRESULT (STDMETHODCALLTYPE *GetDeinterlacePrefs)( IVMRDeinterlaceControl *This, DWORD *prefs); HRESULT (STDMETHODCALLTYPE *SetDeinterlacePrefs)( IVMRDeinterlaceControl *This, DWORD prefs); HRESULT (STDMETHODCALLTYPE *GetActualDeinterlaceMode)( IVMRDeinterlaceControl *This, DWORD id, GUID *mode); END_INTERFACE } IVMRDeinterlaceControlVtbl; interface IVMRDeinterlaceControl { CONST_VTBL IVMRDeinterlaceControlVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ #define IVMRDeinterlaceControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IVMRDeinterlaceControl_AddRef(This) (This)->lpVtbl->AddRef(This) #define IVMRDeinterlaceControl_Release(This) (This)->lpVtbl->Release(This) /*** IVMRDeinterlaceControl methods ***/ #define IVMRDeinterlaceControl_GetNumberOfDeinterlaceModes(This,desc,num_modes,modes) (This)->lpVtbl->GetNumberOfDeinterlaceModes(This,desc,num_modes,modes) #define IVMRDeinterlaceControl_GetDeinterlaceModeCaps(This,mode,desc,caps) (This)->lpVtbl->GetDeinterlaceModeCaps(This,mode,desc,caps) #define IVMRDeinterlaceControl_GetDeinterlaceMode(This,id,mode) (This)->lpVtbl->GetDeinterlaceMode(This,id,mode) #define IVMRDeinterlaceControl_SetDeinterlaceMode(This,id,mode) (This)->lpVtbl->SetDeinterlaceMode(This,id,mode) #define IVMRDeinterlaceControl_GetDeinterlacePrefs(This,prefs) (This)->lpVtbl->GetDeinterlacePrefs(This,prefs) #define IVMRDeinterlaceControl_SetDeinterlacePrefs(This,prefs) (This)->lpVtbl->SetDeinterlacePrefs(This,prefs) #define IVMRDeinterlaceControl_GetActualDeinterlaceMode(This,id,mode) (This)->lpVtbl->GetActualDeinterlaceMode(This,id,mode) #else /*** IUnknown methods ***/ static inline HRESULT IVMRDeinterlaceControl_QueryInterface(IVMRDeinterlaceControl* This,REFIID riid,void **ppvObject) { return This->lpVtbl->QueryInterface(This,riid,ppvObject); } static inline ULONG IVMRDeinterlaceControl_AddRef(IVMRDeinterlaceControl* This) { return This->lpVtbl->AddRef(This); } static inline ULONG IVMRDeinterlaceControl_Release(IVMRDeinterlaceControl* This) { return This->lpVtbl->Release(This); } /*** IVMRDeinterlaceControl methods ***/ static inline HRESULT IVMRDeinterlaceControl_GetNumberOfDeinterlaceModes(IVMRDeinterlaceControl* This,VMRVideoDesc *desc,DWORD *num_modes,GUID *modes) { return This->lpVtbl->GetNumberOfDeinterlaceModes(This,desc,num_modes,modes); } static inline HRESULT IVMRDeinterlaceControl_GetDeinterlaceModeCaps(IVMRDeinterlaceControl* This,GUID *mode,VMRVideoDesc *desc,VMRDeinterlaceCaps *caps) { return This->lpVtbl->GetDeinterlaceModeCaps(This,mode,desc,caps); } static inline HRESULT IVMRDeinterlaceControl_GetDeinterlaceMode(IVMRDeinterlaceControl* This,DWORD id,GUID *mode) { return This->lpVtbl->GetDeinterlaceMode(This,id,mode); } static inline HRESULT IVMRDeinterlaceControl_SetDeinterlaceMode(IVMRDeinterlaceControl* This,DWORD id,GUID *mode) { return This->lpVtbl->SetDeinterlaceMode(This,id,mode); } static inline HRESULT IVMRDeinterlaceControl_GetDeinterlacePrefs(IVMRDeinterlaceControl* This,DWORD *prefs) { return This->lpVtbl->GetDeinterlacePrefs(This,prefs); } static inline HRESULT IVMRDeinterlaceControl_SetDeinterlacePrefs(IVMRDeinterlaceControl* This,DWORD prefs) { return This->lpVtbl->SetDeinterlacePrefs(This,prefs); } static inline HRESULT IVMRDeinterlaceControl_GetActualDeinterlaceMode(IVMRDeinterlaceControl* This,DWORD id,GUID *mode) { return This->lpVtbl->GetActualDeinterlaceMode(This,id,mode); } #endif #endif #endif #endif /* __IVMRDeinterlaceControl_INTERFACE_DEFINED__ */ typedef struct _VMRALPHABITMAP { DWORD dwFlags; HDC hdc; IDirectDrawSurface7 *pDDS; RECT rSrc; RECT rDest; FLOAT fAlpha; COLORREF clrSrcKey; } VMRALPHABITMAP; typedef struct _VMRALPHABITMAP *PVMRALPHABITMAP; #define VMRBITMAP_DISABLE (0x01) #define VMRBITMAP_HDC (0x02) #define VMRBITMAP_ENTIREDDS (0x04) #define VMRBITMAP_SRCCOLORKEY (0x08) #define VMRBITMAP_SRCRECT (0x10) /***************************************************************************** * IVMRMixerBitmap interface */ #ifndef __IVMRMixerBitmap_INTERFACE_DEFINED__ #define __IVMRMixerBitmap_INTERFACE_DEFINED__ DEFINE_GUID(IID_IVMRMixerBitmap, 0x1e673275, 0x0257, 0x40aa, 0xaf,0x20, 0x7c,0x60,0x8d,0x4a,0x04,0x28); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("1e673275-0257-40aa-af20-7c608d4a0428") IVMRMixerBitmap : public IUnknown { virtual HRESULT STDMETHODCALLTYPE SetAlphaBitmap( const VMRALPHABITMAP *params) = 0; virtual HRESULT STDMETHODCALLTYPE UpdateAlphaBitmapParameters( VMRALPHABITMAP *params) = 0; virtual HRESULT STDMETHODCALLTYPE GetAlphaBitmapParameters( VMRALPHABITMAP *params) = 0; }; #ifdef __CRT_UUID_DECL __CRT_UUID_DECL(IVMRMixerBitmap, 0x1e673275, 0x0257, 0x40aa, 0xaf,0x20, 0x7c,0x60,0x8d,0x4a,0x04,0x28) #endif #else typedef struct IVMRMixerBitmapVtbl { BEGIN_INTERFACE /*** IUnknown methods ***/ HRESULT (STDMETHODCALLTYPE *QueryInterface)( IVMRMixerBitmap *This, REFIID riid, void **ppvObject); ULONG (STDMETHODCALLTYPE *AddRef)( IVMRMixerBitmap *This); ULONG (STDMETHODCALLTYPE *Release)( IVMRMixerBitmap *This); /*** IVMRMixerBitmap methods ***/ HRESULT (STDMETHODCALLTYPE *SetAlphaBitmap)( IVMRMixerBitmap *This, const VMRALPHABITMAP *params); HRESULT (STDMETHODCALLTYPE *UpdateAlphaBitmapParameters)( IVMRMixerBitmap *This, VMRALPHABITMAP *params); HRESULT (STDMETHODCALLTYPE *GetAlphaBitmapParameters)( IVMRMixerBitmap *This, VMRALPHABITMAP *params); END_INTERFACE } IVMRMixerBitmapVtbl; interface IVMRMixerBitmap { CONST_VTBL IVMRMixerBitmapVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ #define IVMRMixerBitmap_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IVMRMixerBitmap_AddRef(This) (This)->lpVtbl->AddRef(This) #define IVMRMixerBitmap_Release(This) (This)->lpVtbl->Release(This) /*** IVMRMixerBitmap methods ***/ #define IVMRMixerBitmap_SetAlphaBitmap(This,params) (This)->lpVtbl->SetAlphaBitmap(This,params) #define IVMRMixerBitmap_UpdateAlphaBitmapParameters(This,params) (This)->lpVtbl->UpdateAlphaBitmapParameters(This,params) #define IVMRMixerBitmap_GetAlphaBitmapParameters(This,params) (This)->lpVtbl->GetAlphaBitmapParameters(This,params) #else /*** IUnknown methods ***/ static inline HRESULT IVMRMixerBitmap_QueryInterface(IVMRMixerBitmap* This,REFIID riid,void **ppvObject) { return This->lpVtbl->QueryInterface(This,riid,ppvObject); } static inline ULONG IVMRMixerBitmap_AddRef(IVMRMixerBitmap* This) { return This->lpVtbl->AddRef(This); } static inline ULONG IVMRMixerBitmap_Release(IVMRMixerBitmap* This) { return This->lpVtbl->Release(This); } /*** IVMRMixerBitmap methods ***/ static inline HRESULT IVMRMixerBitmap_SetAlphaBitmap(IVMRMixerBitmap* This,const VMRALPHABITMAP *params) { return This->lpVtbl->SetAlphaBitmap(This,params); } static inline HRESULT IVMRMixerBitmap_UpdateAlphaBitmapParameters(IVMRMixerBitmap* This,VMRALPHABITMAP *params) { return This->lpVtbl->UpdateAlphaBitmapParameters(This,params); } static inline HRESULT IVMRMixerBitmap_GetAlphaBitmapParameters(IVMRMixerBitmap* This,VMRALPHABITMAP *params) { return This->lpVtbl->GetAlphaBitmapParameters(This,params); } #endif #endif #endif #endif /* __IVMRMixerBitmap_INTERFACE_DEFINED__ */ typedef struct _VMRVIDEOSTREAMINFO { IDirectDrawSurface7 *pddsVideoSurface; DWORD dwWidth; DWORD dwHeight; DWORD dwStrmID; FLOAT fAlpha; DDCOLORKEY ddClrKey; NORMALIZEDRECT rNormal; } VMRVIDEOSTREAMINFO; /***************************************************************************** * IVMRImageCompositor interface */ #ifndef __IVMRImageCompositor_INTERFACE_DEFINED__ #define __IVMRImageCompositor_INTERFACE_DEFINED__ DEFINE_GUID(IID_IVMRImageCompositor, 0x7a4fb5af, 0x479f, 0x4074, 0xbb,0x40, 0xce,0x67,0x22,0xe4,0x3c,0x82); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("7a4fb5af-479f-4074-bb40-ce6722e43c82") IVMRImageCompositor : public IUnknown { virtual HRESULT STDMETHODCALLTYPE InitCompositionTarget( IUnknown *d3ddev, IDirectDrawSurface7 *rendertarget) = 0; virtual HRESULT STDMETHODCALLTYPE TermCompositionTarget( IUnknown *d3ddev, IDirectDrawSurface7 *rendertarget) = 0; virtual HRESULT STDMETHODCALLTYPE SetStreamMediaType( DWORD id, AM_MEDIA_TYPE *pmt, BOOL texture) = 0; virtual HRESULT STDMETHODCALLTYPE CompositeImage( IUnknown *d3ddev, IDirectDrawSurface7 *rendertarget, AM_MEDIA_TYPE *pmt, REFERENCE_TIME start, REFERENCE_TIME stop, DWORD backgrnd, VMRVIDEOSTREAMINFO *info, UINT streams) = 0; }; #ifdef __CRT_UUID_DECL __CRT_UUID_DECL(IVMRImageCompositor, 0x7a4fb5af, 0x479f, 0x4074, 0xbb,0x40, 0xce,0x67,0x22,0xe4,0x3c,0x82) #endif #else typedef struct IVMRImageCompositorVtbl { BEGIN_INTERFACE /*** IUnknown methods ***/ HRESULT (STDMETHODCALLTYPE *QueryInterface)( IVMRImageCompositor *This, REFIID riid, void **ppvObject); ULONG (STDMETHODCALLTYPE *AddRef)( IVMRImageCompositor *This); ULONG (STDMETHODCALLTYPE *Release)( IVMRImageCompositor *This); /*** IVMRImageCompositor methods ***/ HRESULT (STDMETHODCALLTYPE *InitCompositionTarget)( IVMRImageCompositor *This, IUnknown *d3ddev, IDirectDrawSurface7 *rendertarget); HRESULT (STDMETHODCALLTYPE *TermCompositionTarget)( IVMRImageCompositor *This, IUnknown *d3ddev, IDirectDrawSurface7 *rendertarget); HRESULT (STDMETHODCALLTYPE *SetStreamMediaType)( IVMRImageCompositor *This, DWORD id, AM_MEDIA_TYPE *pmt, BOOL texture); HRESULT (STDMETHODCALLTYPE *CompositeImage)( IVMRImageCompositor *This, IUnknown *d3ddev, IDirectDrawSurface7 *rendertarget, AM_MEDIA_TYPE *pmt, REFERENCE_TIME start, REFERENCE_TIME stop, DWORD backgrnd, VMRVIDEOSTREAMINFO *info, UINT streams); END_INTERFACE } IVMRImageCompositorVtbl; interface IVMRImageCompositor { CONST_VTBL IVMRImageCompositorVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ #define IVMRImageCompositor_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IVMRImageCompositor_AddRef(This) (This)->lpVtbl->AddRef(This) #define IVMRImageCompositor_Release(This) (This)->lpVtbl->Release(This) /*** IVMRImageCompositor methods ***/ #define IVMRImageCompositor_InitCompositionTarget(This,d3ddev,rendertarget) (This)->lpVtbl->InitCompositionTarget(This,d3ddev,rendertarget) #define IVMRImageCompositor_TermCompositionTarget(This,d3ddev,rendertarget) (This)->lpVtbl->TermCompositionTarget(This,d3ddev,rendertarget) #define IVMRImageCompositor_SetStreamMediaType(This,id,pmt,texture) (This)->lpVtbl->SetStreamMediaType(This,id,pmt,texture) #define IVMRImageCompositor_CompositeImage(This,d3ddev,rendertarget,pmt,start,stop,backgrnd,info,streams) (This)->lpVtbl->CompositeImage(This,d3ddev,rendertarget,pmt,start,stop,backgrnd,info,streams) #else /*** IUnknown methods ***/ static inline HRESULT IVMRImageCompositor_QueryInterface(IVMRImageCompositor* This,REFIID riid,void **ppvObject) { return This->lpVtbl->QueryInterface(This,riid,ppvObject); } static inline ULONG IVMRImageCompositor_AddRef(IVMRImageCompositor* This) { return This->lpVtbl->AddRef(This); } static inline ULONG IVMRImageCompositor_Release(IVMRImageCompositor* This) { return This->lpVtbl->Release(This); } /*** IVMRImageCompositor methods ***/ static inline HRESULT IVMRImageCompositor_InitCompositionTarget(IVMRImageCompositor* This,IUnknown *d3ddev,IDirectDrawSurface7 *rendertarget) { return This->lpVtbl->InitCompositionTarget(This,d3ddev,rendertarget); } static inline HRESULT IVMRImageCompositor_TermCompositionTarget(IVMRImageCompositor* This,IUnknown *d3ddev,IDirectDrawSurface7 *rendertarget) { return This->lpVtbl->TermCompositionTarget(This,d3ddev,rendertarget); } static inline HRESULT IVMRImageCompositor_SetStreamMediaType(IVMRImageCompositor* This,DWORD id,AM_MEDIA_TYPE *pmt,BOOL texture) { return This->lpVtbl->SetStreamMediaType(This,id,pmt,texture); } static inline HRESULT IVMRImageCompositor_CompositeImage(IVMRImageCompositor* This,IUnknown *d3ddev,IDirectDrawSurface7 *rendertarget,AM_MEDIA_TYPE *pmt,REFERENCE_TIME start,REFERENCE_TIME stop,DWORD backgrnd,VMRVIDEOSTREAMINFO *info,UINT streams) { return This->lpVtbl->CompositeImage(This,d3ddev,rendertarget,pmt,start,stop,backgrnd,info,streams); } #endif #endif #endif #endif /* __IVMRImageCompositor_INTERFACE_DEFINED__ */ /***************************************************************************** * IVMRVideoStreamControl interface */ #ifndef __IVMRVideoStreamControl_INTERFACE_DEFINED__ #define __IVMRVideoStreamControl_INTERFACE_DEFINED__ DEFINE_GUID(IID_IVMRVideoStreamControl, 0x058d1f11, 0x2a54, 0x4bef, 0xbd,0x54, 0xdf,0x70,0x66,0x26,0xb7,0x27); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("058d1f11-2a54-4bef-bd54-df706626b727") IVMRVideoStreamControl : public IUnknown { virtual HRESULT STDMETHODCALLTYPE SetColorKey( DDCOLORKEY *key) = 0; virtual HRESULT STDMETHODCALLTYPE GetColorKey( DDCOLORKEY *key) = 0; virtual HRESULT STDMETHODCALLTYPE SetStreamActiveState( BOOL active) = 0; virtual HRESULT STDMETHODCALLTYPE GetStreamActiveState( BOOL *active) = 0; }; #ifdef __CRT_UUID_DECL __CRT_UUID_DECL(IVMRVideoStreamControl, 0x058d1f11, 0x2a54, 0x4bef, 0xbd,0x54, 0xdf,0x70,0x66,0x26,0xb7,0x27) #endif #else typedef struct IVMRVideoStreamControlVtbl { BEGIN_INTERFACE /*** IUnknown methods ***/ HRESULT (STDMETHODCALLTYPE *QueryInterface)( IVMRVideoStreamControl *This, REFIID riid, void **ppvObject); ULONG (STDMETHODCALLTYPE *AddRef)( IVMRVideoStreamControl *This); ULONG (STDMETHODCALLTYPE *Release)( IVMRVideoStreamControl *This); /*** IVMRVideoStreamControl methods ***/ HRESULT (STDMETHODCALLTYPE *SetColorKey)( IVMRVideoStreamControl *This, DDCOLORKEY *key); HRESULT (STDMETHODCALLTYPE *GetColorKey)( IVMRVideoStreamControl *This, DDCOLORKEY *key); HRESULT (STDMETHODCALLTYPE *SetStreamActiveState)( IVMRVideoStreamControl *This, BOOL active); HRESULT (STDMETHODCALLTYPE *GetStreamActiveState)( IVMRVideoStreamControl *This, BOOL *active); END_INTERFACE } IVMRVideoStreamControlVtbl; interface IVMRVideoStreamControl { CONST_VTBL IVMRVideoStreamControlVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ #define IVMRVideoStreamControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IVMRVideoStreamControl_AddRef(This) (This)->lpVtbl->AddRef(This) #define IVMRVideoStreamControl_Release(This) (This)->lpVtbl->Release(This) /*** IVMRVideoStreamControl methods ***/ #define IVMRVideoStreamControl_SetColorKey(This,key) (This)->lpVtbl->SetColorKey(This,key) #define IVMRVideoStreamControl_GetColorKey(This,key) (This)->lpVtbl->GetColorKey(This,key) #define IVMRVideoStreamControl_SetStreamActiveState(This,active) (This)->lpVtbl->SetStreamActiveState(This,active) #define IVMRVideoStreamControl_GetStreamActiveState(This,active) (This)->lpVtbl->GetStreamActiveState(This,active) #else /*** IUnknown methods ***/ static inline HRESULT IVMRVideoStreamControl_QueryInterface(IVMRVideoStreamControl* This,REFIID riid,void **ppvObject) { return This->lpVtbl->QueryInterface(This,riid,ppvObject); } static inline ULONG IVMRVideoStreamControl_AddRef(IVMRVideoStreamControl* This) { return This->lpVtbl->AddRef(This); } static inline ULONG IVMRVideoStreamControl_Release(IVMRVideoStreamControl* This) { return This->lpVtbl->Release(This); } /*** IVMRVideoStreamControl methods ***/ static inline HRESULT IVMRVideoStreamControl_SetColorKey(IVMRVideoStreamControl* This,DDCOLORKEY *key) { return This->lpVtbl->SetColorKey(This,key); } static inline HRESULT IVMRVideoStreamControl_GetColorKey(IVMRVideoStreamControl* This,DDCOLORKEY *key) { return This->lpVtbl->GetColorKey(This,key); } static inline HRESULT IVMRVideoStreamControl_SetStreamActiveState(IVMRVideoStreamControl* This,BOOL active) { return This->lpVtbl->SetStreamActiveState(This,active); } static inline HRESULT IVMRVideoStreamControl_GetStreamActiveState(IVMRVideoStreamControl* This,BOOL *active) { return This->lpVtbl->GetStreamActiveState(This,active); } #endif #endif #endif #endif /* __IVMRVideoStreamControl_INTERFACE_DEFINED__ */ /***************************************************************************** * IVMRImagePresenterConfig interface */ #ifndef __IVMRImagePresenterConfig_INTERFACE_DEFINED__ #define __IVMRImagePresenterConfig_INTERFACE_DEFINED__ DEFINE_GUID(IID_IVMRImagePresenterConfig, 0x9f3a1c85, 0x8555, 0x49ba, 0x93,0x5f, 0xbe,0x5b,0x5b,0x29,0xd1,0x78); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("9f3a1c85-8555-49ba-935f-be5b5b29d178") IVMRImagePresenterConfig : public IUnknown { virtual HRESULT STDMETHODCALLTYPE SetRenderingPrefs( DWORD prefs) = 0; virtual HRESULT STDMETHODCALLTYPE GetRenderingPrefs( DWORD *prefs) = 0; }; #ifdef __CRT_UUID_DECL __CRT_UUID_DECL(IVMRImagePresenterConfig, 0x9f3a1c85, 0x8555, 0x49ba, 0x93,0x5f, 0xbe,0x5b,0x5b,0x29,0xd1,0x78) #endif #else typedef struct IVMRImagePresenterConfigVtbl { BEGIN_INTERFACE /*** IUnknown methods ***/ HRESULT (STDMETHODCALLTYPE *QueryInterface)( IVMRImagePresenterConfig *This, REFIID riid, void **ppvObject); ULONG (STDMETHODCALLTYPE *AddRef)( IVMRImagePresenterConfig *This); ULONG (STDMETHODCALLTYPE *Release)( IVMRImagePresenterConfig *This); /*** IVMRImagePresenterConfig methods ***/ HRESULT (STDMETHODCALLTYPE *SetRenderingPrefs)( IVMRImagePresenterConfig *This, DWORD prefs); HRESULT (STDMETHODCALLTYPE *GetRenderingPrefs)( IVMRImagePresenterConfig *This, DWORD *prefs); END_INTERFACE } IVMRImagePresenterConfigVtbl; interface IVMRImagePresenterConfig { CONST_VTBL IVMRImagePresenterConfigVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ #define IVMRImagePresenterConfig_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IVMRImagePresenterConfig_AddRef(This) (This)->lpVtbl->AddRef(This) #define IVMRImagePresenterConfig_Release(This) (This)->lpVtbl->Release(This) /*** IVMRImagePresenterConfig methods ***/ #define IVMRImagePresenterConfig_SetRenderingPrefs(This,prefs) (This)->lpVtbl->SetRenderingPrefs(This,prefs) #define IVMRImagePresenterConfig_GetRenderingPrefs(This,prefs) (This)->lpVtbl->GetRenderingPrefs(This,prefs) #else /*** IUnknown methods ***/ static inline HRESULT IVMRImagePresenterConfig_QueryInterface(IVMRImagePresenterConfig* This,REFIID riid,void **ppvObject) { return This->lpVtbl->QueryInterface(This,riid,ppvObject); } static inline ULONG IVMRImagePresenterConfig_AddRef(IVMRImagePresenterConfig* This) { return This->lpVtbl->AddRef(This); } static inline ULONG IVMRImagePresenterConfig_Release(IVMRImagePresenterConfig* This) { return This->lpVtbl->Release(This); } /*** IVMRImagePresenterConfig methods ***/ static inline HRESULT IVMRImagePresenterConfig_SetRenderingPrefs(IVMRImagePresenterConfig* This,DWORD prefs) { return This->lpVtbl->SetRenderingPrefs(This,prefs); } static inline HRESULT IVMRImagePresenterConfig_GetRenderingPrefs(IVMRImagePresenterConfig* This,DWORD *prefs) { return This->lpVtbl->GetRenderingPrefs(This,prefs); } #endif #endif #endif #endif /* __IVMRImagePresenterConfig_INTERFACE_DEFINED__ */ /***************************************************************************** * IVMRImagePresenterExclModeConfig interface */ #ifndef __IVMRImagePresenterExclModeConfig_INTERFACE_DEFINED__ #define __IVMRImagePresenterExclModeConfig_INTERFACE_DEFINED__ DEFINE_GUID(IID_IVMRImagePresenterExclModeConfig, 0xe6f7ce40, 0x4673, 0x44f1, 0x8f,0x77, 0x54,0x99,0xd6,0x8c,0xb4,0xea); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("e6f7ce40-4673-44f1-8f77-5499d68cb4ea") IVMRImagePresenterExclModeConfig : public IVMRImagePresenterConfig { virtual HRESULT STDMETHODCALLTYPE SetXlcModeDDObjAndPrimarySurface( IDirectDraw7 *dddev, IDirectDrawSurface7 *ddsurface) = 0; virtual HRESULT STDMETHODCALLTYPE GetXlcModeDDObjAndPrimarySurface( IDirectDraw7 **dddev, IDirectDrawSurface7 **ddsurface) = 0; }; #ifdef __CRT_UUID_DECL __CRT_UUID_DECL(IVMRImagePresenterExclModeConfig, 0xe6f7ce40, 0x4673, 0x44f1, 0x8f,0x77, 0x54,0x99,0xd6,0x8c,0xb4,0xea) #endif #else typedef struct IVMRImagePresenterExclModeConfigVtbl { BEGIN_INTERFACE /*** IUnknown methods ***/ HRESULT (STDMETHODCALLTYPE *QueryInterface)( IVMRImagePresenterExclModeConfig *This, REFIID riid, void **ppvObject); ULONG (STDMETHODCALLTYPE *AddRef)( IVMRImagePresenterExclModeConfig *This); ULONG (STDMETHODCALLTYPE *Release)( IVMRImagePresenterExclModeConfig *This); /*** IVMRImagePresenterConfig methods ***/ HRESULT (STDMETHODCALLTYPE *SetRenderingPrefs)( IVMRImagePresenterExclModeConfig *This, DWORD prefs); HRESULT (STDMETHODCALLTYPE *GetRenderingPrefs)( IVMRImagePresenterExclModeConfig *This, DWORD *prefs); /*** IVMRImagePresenterExclModeConfig methods ***/ HRESULT (STDMETHODCALLTYPE *SetXlcModeDDObjAndPrimarySurface)( IVMRImagePresenterExclModeConfig *This, IDirectDraw7 *dddev, IDirectDrawSurface7 *ddsurface); HRESULT (STDMETHODCALLTYPE *GetXlcModeDDObjAndPrimarySurface)( IVMRImagePresenterExclModeConfig *This, IDirectDraw7 **dddev, IDirectDrawSurface7 **ddsurface); END_INTERFACE } IVMRImagePresenterExclModeConfigVtbl; interface IVMRImagePresenterExclModeConfig { CONST_VTBL IVMRImagePresenterExclModeConfigVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ #define IVMRImagePresenterExclModeConfig_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IVMRImagePresenterExclModeConfig_AddRef(This) (This)->lpVtbl->AddRef(This) #define IVMRImagePresenterExclModeConfig_Release(This) (This)->lpVtbl->Release(This) /*** IVMRImagePresenterConfig methods ***/ #define IVMRImagePresenterExclModeConfig_SetRenderingPrefs(This,prefs) (This)->lpVtbl->SetRenderingPrefs(This,prefs) #define IVMRImagePresenterExclModeConfig_GetRenderingPrefs(This,prefs) (This)->lpVtbl->GetRenderingPrefs(This,prefs) /*** IVMRImagePresenterExclModeConfig methods ***/ #define IVMRImagePresenterExclModeConfig_SetXlcModeDDObjAndPrimarySurface(This,dddev,ddsurface) (This)->lpVtbl->SetXlcModeDDObjAndPrimarySurface(This,dddev,ddsurface) #define IVMRImagePresenterExclModeConfig_GetXlcModeDDObjAndPrimarySurface(This,dddev,ddsurface) (This)->lpVtbl->GetXlcModeDDObjAndPrimarySurface(This,dddev,ddsurface) #else /*** IUnknown methods ***/ static inline HRESULT IVMRImagePresenterExclModeConfig_QueryInterface(IVMRImagePresenterExclModeConfig* This,REFIID riid,void **ppvObject) { return This->lpVtbl->QueryInterface(This,riid,ppvObject); } static inline ULONG IVMRImagePresenterExclModeConfig_AddRef(IVMRImagePresenterExclModeConfig* This) { return This->lpVtbl->AddRef(This); } static inline ULONG IVMRImagePresenterExclModeConfig_Release(IVMRImagePresenterExclModeConfig* This) { return This->lpVtbl->Release(This); } /*** IVMRImagePresenterConfig methods ***/ static inline HRESULT IVMRImagePresenterExclModeConfig_SetRenderingPrefs(IVMRImagePresenterExclModeConfig* This,DWORD prefs) { return This->lpVtbl->SetRenderingPrefs(This,prefs); } static inline HRESULT IVMRImagePresenterExclModeConfig_GetRenderingPrefs(IVMRImagePresenterExclModeConfig* This,DWORD *prefs) { return This->lpVtbl->GetRenderingPrefs(This,prefs); } /*** IVMRImagePresenterExclModeConfig methods ***/ static inline HRESULT IVMRImagePresenterExclModeConfig_SetXlcModeDDObjAndPrimarySurface(IVMRImagePresenterExclModeConfig* This,IDirectDraw7 *dddev,IDirectDrawSurface7 *ddsurface) { return This->lpVtbl->SetXlcModeDDObjAndPrimarySurface(This,dddev,ddsurface); } static inline HRESULT IVMRImagePresenterExclModeConfig_GetXlcModeDDObjAndPrimarySurface(IVMRImagePresenterExclModeConfig* This,IDirectDraw7 **dddev,IDirectDrawSurface7 **ddsurface) { return This->lpVtbl->GetXlcModeDDObjAndPrimarySurface(This,dddev,ddsurface); } #endif #endif #endif #endif /* __IVMRImagePresenterExclModeConfig_INTERFACE_DEFINED__ */ /***************************************************************************** * IVPManager interface */ #ifndef __IVPManager_INTERFACE_DEFINED__ #define __IVPManager_INTERFACE_DEFINED__ DEFINE_GUID(IID_IVPManager, 0xaac18c18, 0xe186, 0x46d2, 0x82,0x5d, 0xa1,0xf8,0xdc,0x8e,0x39,0x5a); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("aac18c18-e186-46d2-825d-a1f8dc8e395a") IVPManager : public IUnknown { virtual HRESULT STDMETHODCALLTYPE SetVideoPortIndex( DWORD index) = 0; virtual HRESULT STDMETHODCALLTYPE GetVideoPortIndex( DWORD *index) = 0; }; #ifdef __CRT_UUID_DECL __CRT_UUID_DECL(IVPManager, 0xaac18c18, 0xe186, 0x46d2, 0x82,0x5d, 0xa1,0xf8,0xdc,0x8e,0x39,0x5a) #endif #else typedef struct IVPManagerVtbl { BEGIN_INTERFACE /*** IUnknown methods ***/ HRESULT (STDMETHODCALLTYPE *QueryInterface)( IVPManager *This, REFIID riid, void **ppvObject); ULONG (STDMETHODCALLTYPE *AddRef)( IVPManager *This); ULONG (STDMETHODCALLTYPE *Release)( IVPManager *This); /*** IVPManager methods ***/ HRESULT (STDMETHODCALLTYPE *SetVideoPortIndex)( IVPManager *This, DWORD index); HRESULT (STDMETHODCALLTYPE *GetVideoPortIndex)( IVPManager *This, DWORD *index); END_INTERFACE } IVPManagerVtbl; interface IVPManager { CONST_VTBL IVPManagerVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ #define IVPManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IVPManager_AddRef(This) (This)->lpVtbl->AddRef(This) #define IVPManager_Release(This) (This)->lpVtbl->Release(This) /*** IVPManager methods ***/ #define IVPManager_SetVideoPortIndex(This,index) (This)->lpVtbl->SetVideoPortIndex(This,index) #define IVPManager_GetVideoPortIndex(This,index) (This)->lpVtbl->GetVideoPortIndex(This,index) #else /*** IUnknown methods ***/ static inline HRESULT IVPManager_QueryInterface(IVPManager* This,REFIID riid,void **ppvObject) { return This->lpVtbl->QueryInterface(This,riid,ppvObject); } static inline ULONG IVPManager_AddRef(IVPManager* This) { return This->lpVtbl->AddRef(This); } static inline ULONG IVPManager_Release(IVPManager* This) { return This->lpVtbl->Release(This); } /*** IVPManager methods ***/ static inline HRESULT IVPManager_SetVideoPortIndex(IVPManager* This,DWORD index) { return This->lpVtbl->SetVideoPortIndex(This,index); } static inline HRESULT IVPManager_GetVideoPortIndex(IVPManager* This,DWORD *index) { return This->lpVtbl->GetVideoPortIndex(This,index); } #endif #endif #endif #endif /* __IVPManager_INTERFACE_DEFINED__ */ #include #if 0 #ifndef __IGraphBuilder_FWD_DEFINED__ #define __IGraphBuilder_FWD_DEFINED__ typedef interface IGraphBuilder IGraphBuilder; #ifdef __cplusplus interface IGraphBuilder; #endif /* __cplusplus */ #endif #endif typedef enum tagDVD_DOMAIN { DVD_DOMAIN_FirstPlay = 1, DVD_DOMAIN_VideoManagerMenu = 2, DVD_DOMAIN_VideoTitleSetMenu = 3, DVD_DOMAIN_Title = 4, DVD_DOMAIN_Stop = 5 } DVD_DOMAIN; typedef enum tagDVD_MENU_ID { DVD_MENU_Title = 2, DVD_MENU_Root = 3, DVD_MENU_Subpicture = 4, DVD_MENU_Audio = 5, DVD_MENU_Angle = 6, DVD_MENU_Chapter = 7 } DVD_MENU_ID; typedef enum tagDVD_DISC_SIDE { DVD_SIDE_A = 1, DVD_SIDE_B = 2 } DVD_DISC_SIDE; typedef enum tagDVD_PREFERRED_DISPLAY_MODE { DISPLAY_CONTENT_DEFAULT = 0, DISPLAY_16x9 = 1, DISPLAY_4x3_PANSCAN_PREFERRED = 2, DISPLAY_4x3_LETTERBOX_PREFERRED = 3 } DVD_PREFERRED_DISPLAY_MODE; typedef WORD DVD_REGISTER; typedef DVD_REGISTER GPRMARRAY[16]; typedef DVD_REGISTER SPRMARRAY[24]; typedef struct tagDVD_ATR { ULONG ulCAT; BYTE pbATRI[768]; } DVD_ATR; typedef BYTE DVD_VideoATR[2]; typedef BYTE DVD_AudioATR[8]; typedef BYTE DVD_SubpictureATR[6]; typedef enum tagDVD_FRAMERATE { DVD_FPS_25 = 1, DVD_FPS_30NonDrop = 3 } DVD_FRAMERATE; typedef struct tagDVD_TIMECODE { ULONG Hours1 : 4; ULONG Hours10 : 4; ULONG Minutes1 : 4; ULONG Minutes10 : 4; ULONG Seconds1 : 4; ULONG Seconds10 : 4; ULONG Frames1 : 4; ULONG Frames10 : 2; ULONG FrameRateCode : 2; } DVD_TIMECODE; typedef enum tagDVD_NavCmdType { DVD_NavCmdType_Pre = 1, DVD_NavCmdType_Post = 2, DVD_NavCmdType_Cell = 3, DVD_NavCmdType_Button = 4 } DVD_NavCmdType; typedef enum tagDVD_TIMECODE_FLAGS { DVD_TC_FLAG_25fps = 0x1, DVD_TC_FLAG_30fps = 0x2, DVD_TC_FLAG_DropFrame = 0x4, DVD_TC_FLAG_Interpolated = 0x8 } DVD_TIMECODE_FLAGS; typedef struct tagDVD_HMSF_TIMECODE { BYTE bHours; BYTE bMinutes; BYTE bSeconds; BYTE bFrames; } DVD_HMSF_TIMECODE; typedef struct tagDVD_PLAYBACK_LOCATION2 { ULONG TitleNum; ULONG ChapterNum; DVD_HMSF_TIMECODE TimeCode; ULONG TimeCodeFlags; } DVD_PLAYBACK_LOCATION2; typedef struct tagDVD_PLAYBACK_LOCATION { ULONG TitleNum; ULONG ChapterNum; ULONG TimeCode; } DVD_PLAYBACK_LOCATION; typedef DWORD VALID_UOP_SOMTHING_OR_OTHER; typedef enum __WIDL_strmif_generated_name_00000016 { UOP_FLAG_Play_Title_Or_AtTime = 0x1, UOP_FLAG_Play_Chapter = 0x2, UOP_FLAG_Play_Title = 0x4, UOP_FLAG_Stop = 0x8, UOP_FLAG_ReturnFromSubMenu = 0x10, UOP_FLAG_Play_Chapter_Or_AtTime = 0x20, UOP_FLAG_PlayPrev_Or_Replay_Chapter = 0x40, UOP_FLAG_PlayNext_Chapter = 0x80, UOP_FLAG_Play_Forwards = 0x100, UOP_FLAG_Play_Backwards = 0x200, UOP_FLAG_ShowMenu_Title = 0x400, UOP_FLAG_ShowMenu_Root = 0x800, UOP_FLAG_ShowMenu_SubPic = 0x1000, UOP_FLAG_ShowMenu_Audio = 0x2000, UOP_FLAG_ShowMenu_Angle = 0x4000, UOP_FLAG_ShowMenu_Chapter = 0x8000, UOP_FLAG_Resume = 0x10000, UOP_FLAG_Select_Or_Activate_Button = 0x20000, UOP_FLAG_Still_Off = 0x40000, UOP_FLAG_Pause_On = 0x80000, UOP_FLAG_Select_Audio_Stream = 0x100000, UOP_FLAG_Select_SubPic_Stream = 0x200000, UOP_FLAG_Select_Angle = 0x400000, UOP_FLAG_Select_Karaoke_Audio_Presentation_Mode = 0x800000, UOP_FLAG_Select_Video_Mode_Preference = 0x1000000 } VALID_UOP_FLAG; typedef enum __WIDL_strmif_generated_name_00000017 { DVD_CMD_FLAG_None = 0x0, DVD_CMD_FLAG_Flush = 0x1, DVD_CMD_FLAG_SendEvents = 0x2, DVD_CMD_FLAG_Block = 0x4, DVD_CMD_FLAG_StartWhenRendered = 0x8, DVD_CMD_FLAG_EndAfterRendered = 0x10 } DVD_CMD_FLAGS; typedef enum __WIDL_strmif_generated_name_00000018 { DVD_ResetOnStop = 1, DVD_NotifyParentalLevelChange = 2, DVD_HMSF_TimeCodeEvents = 3, DVD_AudioDuringFFwdRew = 4, DVD_EnableNonblockingAPIs = 5, DVD_CacheSizeInMB = 6, DVD_EnablePortableBookmarks = 7, DVD_EnableExtendedCopyProtectErrors = 8, DVD_NotifyPositionChange = 9, DVD_IncreaseOutputControl = 10, DVD_EnableStreaming = 11, DVD_EnableESOutput = 12, DVD_EnableTitleLength = 13, DVD_DisableStillThrottle = 14, DVD_EnableLoggingEvents = 15, DVD_MaxReadBurstInKB = 16, DVD_ReadBurstPeriodInMS = 17, DVD_RestartDisc = 18, DVD_EnableCC = 19 } DVD_OPTION_FLAG; typedef enum __WIDL_strmif_generated_name_00000019 { DVD_Relative_Upper = 1, DVD_Relative_Lower = 2, DVD_Relative_Left = 3, DVD_Relative_Right = 4 } DVD_RELATIVE_BUTTON; typedef enum tagDVD_PARENTAL_LEVEL { DVD_PARENTAL_LEVEL_8 = 0x8000, DVD_PARENTAL_LEVEL_7 = 0x4000, DVD_PARENTAL_LEVEL_6 = 0x2000, DVD_PARENTAL_LEVEL_5 = 0x1000, DVD_PARENTAL_LEVEL_4 = 0x800, DVD_PARENTAL_LEVEL_3 = 0x400, DVD_PARENTAL_LEVEL_2 = 0x200, DVD_PARENTAL_LEVEL_1 = 0x100 } DVD_PARENTAL_LEVEL; typedef enum tagDVD_AUDIO_LANG_EXT { DVD_AUD_EXT_NotSpecified = 0, DVD_AUD_EXT_Captions = 1, DVD_AUD_EXT_VisuallyImpaired = 2, DVD_AUD_EXT_DirectorComments1 = 3, DVD_AUD_EXT_DirectorComments2 = 4 } DVD_AUDIO_LANG_EXT; typedef enum tagDVD_SUBPICTURE_LANG_EXT { DVD_SP_EXT_NotSpecified = 0, DVD_SP_EXT_Caption_Normal = 1, DVD_SP_EXT_Caption_Big = 2, DVD_SP_EXT_Caption_Children = 3, DVD_SP_EXT_CC_Normal = 5, DVD_SP_EXT_CC_Big = 6, DVD_SP_EXT_CC_Children = 7, DVD_SP_EXT_Forced = 9, DVD_SP_EXT_DirectorComments_Normal = 13, DVD_SP_EXT_DirectorComments_Big = 14, DVD_SP_EXT_DirectorComments_Children = 15 } DVD_SUBPICTURE_LANG_EXT; typedef enum tagDVD_AUDIO_APPMODE { DVD_AudioMode_None = 0, DVD_AudioMode_Karaoke = 1, DVD_AudioMode_Surround = 2, DVD_AudioMode_Other = 3 } DVD_AUDIO_APPMODE; typedef enum tagDVD_AUDIO_FORMAT { DVD_AudioFormat_AC3 = 0, DVD_AudioFormat_MPEG1 = 1, DVD_AudioFormat_MPEG1_DRC = 2, DVD_AudioFormat_MPEG2 = 3, DVD_AudioFormat_MPEG2_DRC = 4, DVD_AudioFormat_LPCM = 5, DVD_AudioFormat_DTS = 6, DVD_AudioFormat_SDDS = 7, DVD_AudioFormat_Other = 8 } DVD_AUDIO_FORMAT; typedef enum tagDVD_KARAOKE_DOWNMIX { DVD_Mix_0to0 = 0x1, DVD_Mix_1to0 = 0x2, DVD_Mix_2to0 = 0x4, DVD_Mix_3to0 = 0x8, DVD_Mix_4to0 = 0x10, DVD_Mix_Lto0 = 0x20, DVD_Mix_Rto0 = 0x40, DVD_Mix_0to1 = 0x100, DVD_Mix_1to1 = 0x200, DVD_Mix_2to1 = 0x400, DVD_Mix_3to1 = 0x800, DVD_Mix_4to1 = 0x1000, DVD_Mix_Lto1 = 0x2000, DVD_Mix_Rto1 = 0x4000 } DVD_KARAOKE_DOWNMIX; typedef enum tagDVD_KARAOKE_CONTENTS { DVD_Karaoke_GuideVocal1 = 0x1, DVD_Karaoke_GuideVocal2 = 0x2, DVD_Karaoke_GuideMelody1 = 0x4, DVD_Karaoke_GuideMelody2 = 0x8, DVD_Karaoke_GuideMelodyA = 0x10, DVD_Karaoke_GuideMelodyB = 0x20, DVD_Karaoke_SoundEffectA = 0x40, DVD_Karaoke_SoundEffectB = 0x80 } DVD_KARAOKE_CONTENTS; typedef enum tagDVD_KARAOKE_ASSIGNMENT { DVD_Assignment_reserved0 = 0, DVD_Assignment_reserved1 = 1, DVD_Assignment_LR = 2, DVD_Assignment_LRM = 3, DVD_Assignment_LR1 = 4, DVD_Assignment_LRM1 = 5, DVD_Assignment_LR12 = 6, DVD_Assignment_LRM12 = 7 } DVD_KARAOKE_ASSIGNMENT; typedef struct tagDVD_MUA_MixingInfo { BOOL fMixTo0; BOOL fMixTo1; BOOL fMix0InPhase; BOOL fMix1InPhase; DWORD dwSpeakerPosition; } DVD_MUA_MixingInfo; typedef struct tagDVD_MUA_Coeff { double log2_alpha; double log2_beta; } DVD_MUA_Coeff; typedef enum tagDVD_VIDEO_COMPRESSION { DVD_VideoCompression_Other = 0, DVD_VideoCompression_MPEG1 = 1, DVD_VideoCompression_MPEG2 = 2 } DVD_VIDEO_COMPRESSION; typedef enum tagDVD_SUBPICTURE_TYPE { DVD_SPType_NotSpecified = 0, DVD_SPType_Language = 1, DVD_SPType_Other = 2 } DVD_SUBPICTURE_TYPE; typedef enum tagDVD_SUBPICTURE_CODING { DVD_SPCoding_RunLength = 0, DVD_SPCoding_Extended = 1, DVD_SPCoding_Other = 2 } DVD_SUBPICTURE_CODING; typedef enum tagDVD_TITLE_APPMODE { DVD_AppMode_Not_Specified = 0, DVD_AppMode_Karaoke = 1, DVD_AppMode_Other = 3 } DVD_TITLE_APPMODE; enum DVD_TextStringType { DVD_Struct_Volume = 0x1, DVD_Struct_Title = 0x2, DVD_Struct_ParentalID = 0x3, DVD_Struct_PartOfTitle = 0x4, DVD_Struct_Cell = 0x5, DVD_Stream_Audio = 0x10, DVD_Stream_Subpicture = 0x11, DVD_Stream_Angle = 0x12, DVD_Channel_Audio = 0x20, DVD_General_Name = 0x30, DVD_General_Comments = 0x31, DVD_Title_Series = 0x38, DVD_Title_Movie = 0x39, DVD_Title_Video = 0x3a, DVD_Title_Album = 0x3b, DVD_Title_Song = 0x3c, DVD_Title_Other = 0x3f, DVD_Title_Sub_Series = 0x40, DVD_Title_Sub_Movie = 0x41, DVD_Title_Sub_Video = 0x42, DVD_Title_Sub_Album = 0x43, DVD_Title_Sub_Song = 0x44, DVD_Title_Sub_Other = 0x47, DVD_Title_Orig_Series = 0x48, DVD_Title_Orig_Movie = 0x49, DVD_Title_Orig_Video = 0x4a, DVD_Title_Orig_Album = 0x4b, DVD_Title_Orig_Song = 0x4c, DVD_Title_Orig_Other = 0x4f, DVD_Other_Scene = 0x50, DVD_Other_Cut = 0x51, DVD_Other_Take = 0x52 }; enum DVD_TextCharSet { DVD_CharSet_Unicode = 0, DVD_CharSet_ISO646 = 1, DVD_CharSet_JIS_Roman_Kanji = 2, DVD_CharSet_ISO8859_1 = 3, DVD_CharSet_ShiftJIS_Kanji_Roman_Katakana = 4 }; typedef struct tagDVD_AudioAttributes { DVD_AUDIO_APPMODE AppMode; BYTE AppModeData; DVD_AUDIO_FORMAT AudioFormat; LCID Language; DVD_AUDIO_LANG_EXT LanguageExtension; BOOL fHasMultichannelInfo; DWORD dwFrequency; BYTE bQuantization; BYTE bNumberOfChannels; DWORD dwReserved[2]; } DVD_AudioAttributes; typedef struct tagDVD_MultichannelAudioAttributes { DVD_MUA_MixingInfo Info[8]; DVD_MUA_Coeff Coeff[8]; } DVD_MultichannelAudioAttributes; typedef struct tagDVD_VideoAttributes { BOOL fPanscanPermitted; BOOL fLetterboxPermitted; ULONG ulAspectX; ULONG ulAspectY; ULONG ulFrameRate; ULONG ulFrameHeight; DVD_VIDEO_COMPRESSION Compression; BOOL fLine21Field1InGOP; BOOL fLine21Field2InGOP; ULONG ulSourceResolutionX; ULONG ulSourceResolutionY; BOOL fIsSourceLetterboxed; BOOL fIsFilmMode; } DVD_VideoAttributes; typedef struct tagDVD_SubpictureAttributes { DVD_SUBPICTURE_TYPE Type; DVD_SUBPICTURE_CODING CodingMode; LCID Language; DVD_SUBPICTURE_LANG_EXT LanguageExtension; } DVD_SubpictureAttributes; typedef struct tagDVD_KaraokeAttributes { BYTE bVersion; BOOL fMasterOfCeremoniesInGuideVocal1; BOOL fDuet; DVD_KARAOKE_ASSIGNMENT ChannelAssignment; WORD wChannelContents[8]; } DVD_KaraokeAttributes; typedef struct tagDVD_TitleMainAttributes { union { DVD_TITLE_APPMODE AppMode; DVD_HMSF_TIMECODE TitleLength; } DUMMYUNIONNAME; DVD_VideoAttributes VideoAttributes; ULONG ulNumberOfAudioStreams; DVD_AudioAttributes AudioAttributes[8]; DVD_MultichannelAudioAttributes MultichannelAudioAttributes[8]; ULONG ulNumberOfSubpictureStreams; DVD_SubpictureAttributes SubpictureAttributes[32]; } DVD_TitleAttributes; typedef struct tagDVD_MenuAttributes { BOOL fCompatibleRegion[8]; DVD_VideoAttributes VideoAttributes; BOOL fAudioPresent; DVD_AudioAttributes AudioAttributes; BOOL fSubpicturePresent; DVD_SubpictureAttributes SubpictureAttributes; } DVD_MenuAttributes; #define DVD_TITLE_MENU 0x000 #define DVD_STREAM_DATA_VMGM 0x400 #define DVD_STREAM_DATA_VTSM 0x401 #define DVD_STREAM_DATA_CURRENT 0x800 #define DVD_DEFAULT_AUDIO_STREAM 0x00f #define DVD_AUDIO_CAPS_AC3 0x00000001 #define DVD_AUDIO_CAPS_MPEG2 0x00000002 #define DVD_AUDIO_CAPS_LPCM 0x00000004 #define DVD_AUDIO_CAPS_DTS 0x00000008 #define DVD_AUDIO_CAPS_SDDS 0x00000010 typedef struct tagDVD_DECODER_CAPS { DWORD dwSize; DWORD dwAudioCaps; double dFwdMaxRateVideo; double dFwdMaxRateAudio; double dFwdMaxRateSP; double dBwdMaxRateVideo; double dBwdMaxRateAudio; double dBwdMaxRateSP; DWORD dwRes1; DWORD dwRes2; DWORD dwRes3; DWORD dwRes4; } DVD_DECODER_CAPS; typedef enum _AM_DVD_GRAPH_FLAGS { AM_DVD_HWDEC_PREFER = 0x1, AM_DVD_HWDEC_ONLY = 0x2, AM_DVD_SWDEC_PREFER = 0x4, AM_DVD_SWDEC_ONLY = 0x8, AM_DVD_NOVPE = 0x100, AM_DVD_DO_NOT_CLEAR = 0x200, AM_DVD_VMR9_ONLY = 0x800, AM_DVD_EVR_ONLY = 0x1000, AM_DVD_EVR_QOS = 0x2000, AM_DVD_ADAPT_GRAPH = 0x4000, AM_DVD_MASK = 0xffff } AM_DVD_GRAPH_FLAGS; typedef enum _AM_DVD_STREAM_FLAGS { AM_DVD_STREAM_VIDEO = 0x1, AM_DVD_STREAM_AUDIO = 0x2, AM_DVD_STREAM_SUBPIC = 0x4 } AM_DVD_STREAM_FLAGS; typedef struct tagAM_DVD_RENDERSTATUS { HRESULT hrVPEStatus; BOOL bDvdVolInvalid; BOOL bDvdVolUnknown; BOOL bNoLine21In; BOOL bNoLine21Out; int iNumStreams; int iNumStreamsFailed; DWORD dwFailedStreamsFlag; } AM_DVD_RENDERSTATUS; /***************************************************************************** * IDvdControl interface */ #ifndef __IDvdControl_INTERFACE_DEFINED__ #define __IDvdControl_INTERFACE_DEFINED__ DEFINE_GUID(IID_IDvdControl, 0xa70efe61, 0xe2a3, 0x11d0, 0xa9,0xbe, 0x00,0xaa,0x00,0x61,0xbe,0x93); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("a70efe61-e2a3-11d0-a9be-00aa0061be93") IDvdControl : public IUnknown { virtual HRESULT STDMETHODCALLTYPE TitlePlay( ULONG title) = 0; virtual HRESULT STDMETHODCALLTYPE ChapterPlay( ULONG title, ULONG chapter) = 0; virtual HRESULT STDMETHODCALLTYPE TimePlay( ULONG title, ULONG time) = 0; virtual HRESULT STDMETHODCALLTYPE StopForResume( ) = 0; virtual HRESULT STDMETHODCALLTYPE GoUp( ) = 0; virtual HRESULT STDMETHODCALLTYPE TimeSearch( ULONG time) = 0; virtual HRESULT STDMETHODCALLTYPE ChapterSearch( ULONG chapter) = 0; virtual HRESULT STDMETHODCALLTYPE PrevPGSearch( ) = 0; virtual HRESULT STDMETHODCALLTYPE TopPGSearch( ) = 0; virtual HRESULT STDMETHODCALLTYPE NextPGSearch( ) = 0; virtual HRESULT STDMETHODCALLTYPE ForwardScan( double speed) = 0; virtual HRESULT STDMETHODCALLTYPE BackwardScan( double speed) = 0; virtual HRESULT STDMETHODCALLTYPE MenuCall( DVD_MENU_ID id) = 0; virtual HRESULT STDMETHODCALLTYPE Resume( ) = 0; virtual HRESULT STDMETHODCALLTYPE UpperButtonSelect( ) = 0; virtual HRESULT STDMETHODCALLTYPE LowerButtonSelect( ) = 0; virtual HRESULT STDMETHODCALLTYPE LeftButtonSelect( ) = 0; virtual HRESULT STDMETHODCALLTYPE RightButtonSelect( ) = 0; virtual HRESULT STDMETHODCALLTYPE ButtonActivate( ) = 0; virtual HRESULT STDMETHODCALLTYPE ButtonSelectActivate( ULONG button) = 0; virtual HRESULT STDMETHODCALLTYPE StillOff( ) = 0; virtual HRESULT STDMETHODCALLTYPE PauseOn( ) = 0; virtual HRESULT STDMETHODCALLTYPE PauseOff( ) = 0; virtual HRESULT STDMETHODCALLTYPE MenuLanguageSelect( LCID language) = 0; virtual HRESULT STDMETHODCALLTYPE AudioStreamChange( ULONG audio) = 0; virtual HRESULT STDMETHODCALLTYPE SubpictureStreamChange( ULONG subpicture, BOOL enable) = 0; virtual HRESULT STDMETHODCALLTYPE AngleChange( ULONG angle) = 0; virtual HRESULT STDMETHODCALLTYPE ParentalLevelSelect( ULONG level) = 0; virtual HRESULT STDMETHODCALLTYPE ParentalCountrySelect( WORD country) = 0; virtual HRESULT STDMETHODCALLTYPE KaraokeAudioPresentationModeChange( ULONG mode) = 0; virtual HRESULT STDMETHODCALLTYPE VideoModePreference( ULONG mode) = 0; virtual HRESULT STDMETHODCALLTYPE SetRoot( const WCHAR *path) = 0; virtual HRESULT STDMETHODCALLTYPE MouseActivate( POINT point) = 0; virtual HRESULT STDMETHODCALLTYPE MouseSelect( POINT point) = 0; virtual HRESULT STDMETHODCALLTYPE ChapterPlayAutoStop( ULONG title, ULONG chapter, ULONG count) = 0; }; #ifdef __CRT_UUID_DECL __CRT_UUID_DECL(IDvdControl, 0xa70efe61, 0xe2a3, 0x11d0, 0xa9,0xbe, 0x00,0xaa,0x00,0x61,0xbe,0x93) #endif #else typedef struct IDvdControlVtbl { BEGIN_INTERFACE /*** IUnknown methods ***/ HRESULT (STDMETHODCALLTYPE *QueryInterface)( IDvdControl *This, REFIID riid, void **ppvObject); ULONG (STDMETHODCALLTYPE *AddRef)( IDvdControl *This); ULONG (STDMETHODCALLTYPE *Release)( IDvdControl *This); /*** IDvdControl methods ***/ HRESULT (STDMETHODCALLTYPE *TitlePlay)( IDvdControl *This, ULONG title); HRESULT (STDMETHODCALLTYPE *ChapterPlay)( IDvdControl *This, ULONG title, ULONG chapter); HRESULT (STDMETHODCALLTYPE *TimePlay)( IDvdControl *This, ULONG title, ULONG time); HRESULT (STDMETHODCALLTYPE *StopForResume)( IDvdControl *This); HRESULT (STDMETHODCALLTYPE *GoUp)( IDvdControl *This); HRESULT (STDMETHODCALLTYPE *TimeSearch)( IDvdControl *This, ULONG time); HRESULT (STDMETHODCALLTYPE *ChapterSearch)( IDvdControl *This, ULONG chapter); HRESULT (STDMETHODCALLTYPE *PrevPGSearch)( IDvdControl *This); HRESULT (STDMETHODCALLTYPE *TopPGSearch)( IDvdControl *This); HRESULT (STDMETHODCALLTYPE *NextPGSearch)( IDvdControl *This); HRESULT (STDMETHODCALLTYPE *ForwardScan)( IDvdControl *This, double speed); HRESULT (STDMETHODCALLTYPE *BackwardScan)( IDvdControl *This, double speed); HRESULT (STDMETHODCALLTYPE *MenuCall)( IDvdControl *This, DVD_MENU_ID id); HRESULT (STDMETHODCALLTYPE *Resume)( IDvdControl *This); HRESULT (STDMETHODCALLTYPE *UpperButtonSelect)( IDvdControl *This); HRESULT (STDMETHODCALLTYPE *LowerButtonSelect)( IDvdControl *This); HRESULT (STDMETHODCALLTYPE *LeftButtonSelect)( IDvdControl *This); HRESULT (STDMETHODCALLTYPE *RightButtonSelect)( IDvdControl *This); HRESULT (STDMETHODCALLTYPE *ButtonActivate)( IDvdControl *This); HRESULT (STDMETHODCALLTYPE *ButtonSelectActivate)( IDvdControl *This, ULONG button); HRESULT (STDMETHODCALLTYPE *StillOff)( IDvdControl *This); HRESULT (STDMETHODCALLTYPE *PauseOn)( IDvdControl *This); HRESULT (STDMETHODCALLTYPE *PauseOff)( IDvdControl *This); HRESULT (STDMETHODCALLTYPE *MenuLanguageSelect)( IDvdControl *This, LCID language); HRESULT (STDMETHODCALLTYPE *AudioStreamChange)( IDvdControl *This, ULONG audio); HRESULT (STDMETHODCALLTYPE *SubpictureStreamChange)( IDvdControl *This, ULONG subpicture, BOOL enable); HRESULT (STDMETHODCALLTYPE *AngleChange)( IDvdControl *This, ULONG angle); HRESULT (STDMETHODCALLTYPE *ParentalLevelSelect)( IDvdControl *This, ULONG level); HRESULT (STDMETHODCALLTYPE *ParentalCountrySelect)( IDvdControl *This, WORD country); HRESULT (STDMETHODCALLTYPE *KaraokeAudioPresentationModeChange)( IDvdControl *This, ULONG mode); HRESULT (STDMETHODCALLTYPE *VideoModePreference)( IDvdControl *This, ULONG mode); HRESULT (STDMETHODCALLTYPE *SetRoot)( IDvdControl *This, const WCHAR *path); HRESULT (STDMETHODCALLTYPE *MouseActivate)( IDvdControl *This, POINT point); HRESULT (STDMETHODCALLTYPE *MouseSelect)( IDvdControl *This, POINT point); HRESULT (STDMETHODCALLTYPE *ChapterPlayAutoStop)( IDvdControl *This, ULONG title, ULONG chapter, ULONG count); END_INTERFACE } IDvdControlVtbl; interface IDvdControl { CONST_VTBL IDvdControlVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ #define IDvdControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IDvdControl_AddRef(This) (This)->lpVtbl->AddRef(This) #define IDvdControl_Release(This) (This)->lpVtbl->Release(This) /*** IDvdControl methods ***/ #define IDvdControl_TitlePlay(This,title) (This)->lpVtbl->TitlePlay(This,title) #define IDvdControl_ChapterPlay(This,title,chapter) (This)->lpVtbl->ChapterPlay(This,title,chapter) #define IDvdControl_TimePlay(This,title,time) (This)->lpVtbl->TimePlay(This,title,time) #define IDvdControl_StopForResume(This) (This)->lpVtbl->StopForResume(This) #define IDvdControl_GoUp(This) (This)->lpVtbl->GoUp(This) #define IDvdControl_TimeSearch(This,time) (This)->lpVtbl->TimeSearch(This,time) #define IDvdControl_ChapterSearch(This,chapter) (This)->lpVtbl->ChapterSearch(This,chapter) #define IDvdControl_PrevPGSearch(This) (This)->lpVtbl->PrevPGSearch(This) #define IDvdControl_TopPGSearch(This) (This)->lpVtbl->TopPGSearch(This) #define IDvdControl_NextPGSearch(This) (This)->lpVtbl->NextPGSearch(This) #define IDvdControl_ForwardScan(This,speed) (This)->lpVtbl->ForwardScan(This,speed) #define IDvdControl_BackwardScan(This,speed) (This)->lpVtbl->BackwardScan(This,speed) #define IDvdControl_MenuCall(This,id) (This)->lpVtbl->MenuCall(This,id) #define IDvdControl_Resume(This) (This)->lpVtbl->Resume(This) #define IDvdControl_UpperButtonSelect(This) (This)->lpVtbl->UpperButtonSelect(This) #define IDvdControl_LowerButtonSelect(This) (This)->lpVtbl->LowerButtonSelect(This) #define IDvdControl_LeftButtonSelect(This) (This)->lpVtbl->LeftButtonSelect(This) #define IDvdControl_RightButtonSelect(This) (This)->lpVtbl->RightButtonSelect(This) #define IDvdControl_ButtonActivate(This) (This)->lpVtbl->ButtonActivate(This) #define IDvdControl_ButtonSelectActivate(This,button) (This)->lpVtbl->ButtonSelectActivate(This,button) #define IDvdControl_StillOff(This) (This)->lpVtbl->StillOff(This) #define IDvdControl_PauseOn(This) (This)->lpVtbl->PauseOn(This) #define IDvdControl_PauseOff(This) (This)->lpVtbl->PauseOff(This) #define IDvdControl_MenuLanguageSelect(This,language) (This)->lpVtbl->MenuLanguageSelect(This,language) #define IDvdControl_AudioStreamChange(This,audio) (This)->lpVtbl->AudioStreamChange(This,audio) #define IDvdControl_SubpictureStreamChange(This,subpicture,enable) (This)->lpVtbl->SubpictureStreamChange(This,subpicture,enable) #define IDvdControl_AngleChange(This,angle) (This)->lpVtbl->AngleChange(This,angle) #define IDvdControl_ParentalLevelSelect(This,level) (This)->lpVtbl->ParentalLevelSelect(This,level) #define IDvdControl_ParentalCountrySelect(This,country) (This)->lpVtbl->ParentalCountrySelect(This,country) #define IDvdControl_KaraokeAudioPresentationModeChange(This,mode) (This)->lpVtbl->KaraokeAudioPresentationModeChange(This,mode) #define IDvdControl_VideoModePreference(This,mode) (This)->lpVtbl->VideoModePreference(This,mode) #define IDvdControl_SetRoot(This,path) (This)->lpVtbl->SetRoot(This,path) #define IDvdControl_MouseActivate(This,point) (This)->lpVtbl->MouseActivate(This,point) #define IDvdControl_MouseSelect(This,point) (This)->lpVtbl->MouseSelect(This,point) #define IDvdControl_ChapterPlayAutoStop(This,title,chapter,count) (This)->lpVtbl->ChapterPlayAutoStop(This,title,chapter,count) #else /*** IUnknown methods ***/ static inline HRESULT IDvdControl_QueryInterface(IDvdControl* This,REFIID riid,void **ppvObject) { return This->lpVtbl->QueryInterface(This,riid,ppvObject); } static inline ULONG IDvdControl_AddRef(IDvdControl* This) { return This->lpVtbl->AddRef(This); } static inline ULONG IDvdControl_Release(IDvdControl* This) { return This->lpVtbl->Release(This); } /*** IDvdControl methods ***/ static inline HRESULT IDvdControl_TitlePlay(IDvdControl* This,ULONG title) { return This->lpVtbl->TitlePlay(This,title); } static inline HRESULT IDvdControl_ChapterPlay(IDvdControl* This,ULONG title,ULONG chapter) { return This->lpVtbl->ChapterPlay(This,title,chapter); } static inline HRESULT IDvdControl_TimePlay(IDvdControl* This,ULONG title,ULONG time) { return This->lpVtbl->TimePlay(This,title,time); } static inline HRESULT IDvdControl_StopForResume(IDvdControl* This) { return This->lpVtbl->StopForResume(This); } static inline HRESULT IDvdControl_GoUp(IDvdControl* This) { return This->lpVtbl->GoUp(This); } static inline HRESULT IDvdControl_TimeSearch(IDvdControl* This,ULONG time) { return This->lpVtbl->TimeSearch(This,time); } static inline HRESULT IDvdControl_ChapterSearch(IDvdControl* This,ULONG chapter) { return This->lpVtbl->ChapterSearch(This,chapter); } static inline HRESULT IDvdControl_PrevPGSearch(IDvdControl* This) { return This->lpVtbl->PrevPGSearch(This); } static inline HRESULT IDvdControl_TopPGSearch(IDvdControl* This) { return This->lpVtbl->TopPGSearch(This); } static inline HRESULT IDvdControl_NextPGSearch(IDvdControl* This) { return This->lpVtbl->NextPGSearch(This); } static inline HRESULT IDvdControl_ForwardScan(IDvdControl* This,double speed) { return This->lpVtbl->ForwardScan(This,speed); } static inline HRESULT IDvdControl_BackwardScan(IDvdControl* This,double speed) { return This->lpVtbl->BackwardScan(This,speed); } static inline HRESULT IDvdControl_MenuCall(IDvdControl* This,DVD_MENU_ID id) { return This->lpVtbl->MenuCall(This,id); } static inline HRESULT IDvdControl_Resume(IDvdControl* This) { return This->lpVtbl->Resume(This); } static inline HRESULT IDvdControl_UpperButtonSelect(IDvdControl* This) { return This->lpVtbl->UpperButtonSelect(This); } static inline HRESULT IDvdControl_LowerButtonSelect(IDvdControl* This) { return This->lpVtbl->LowerButtonSelect(This); } static inline HRESULT IDvdControl_LeftButtonSelect(IDvdControl* This) { return This->lpVtbl->LeftButtonSelect(This); } static inline HRESULT IDvdControl_RightButtonSelect(IDvdControl* This) { return This->lpVtbl->RightButtonSelect(This); } static inline HRESULT IDvdControl_ButtonActivate(IDvdControl* This) { return This->lpVtbl->ButtonActivate(This); } static inline HRESULT IDvdControl_ButtonSelectActivate(IDvdControl* This,ULONG button) { return This->lpVtbl->ButtonSelectActivate(This,button); } static inline HRESULT IDvdControl_StillOff(IDvdControl* This) { return This->lpVtbl->StillOff(This); } static inline HRESULT IDvdControl_PauseOn(IDvdControl* This) { return This->lpVtbl->PauseOn(This); } static inline HRESULT IDvdControl_PauseOff(IDvdControl* This) { return This->lpVtbl->PauseOff(This); } static inline HRESULT IDvdControl_MenuLanguageSelect(IDvdControl* This,LCID language) { return This->lpVtbl->MenuLanguageSelect(This,language); } static inline HRESULT IDvdControl_AudioStreamChange(IDvdControl* This,ULONG audio) { return This->lpVtbl->AudioStreamChange(This,audio); } static inline HRESULT IDvdControl_SubpictureStreamChange(IDvdControl* This,ULONG subpicture,BOOL enable) { return This->lpVtbl->SubpictureStreamChange(This,subpicture,enable); } static inline HRESULT IDvdControl_AngleChange(IDvdControl* This,ULONG angle) { return This->lpVtbl->AngleChange(This,angle); } static inline HRESULT IDvdControl_ParentalLevelSelect(IDvdControl* This,ULONG level) { return This->lpVtbl->ParentalLevelSelect(This,level); } static inline HRESULT IDvdControl_ParentalCountrySelect(IDvdControl* This,WORD country) { return This->lpVtbl->ParentalCountrySelect(This,country); } static inline HRESULT IDvdControl_KaraokeAudioPresentationModeChange(IDvdControl* This,ULONG mode) { return This->lpVtbl->KaraokeAudioPresentationModeChange(This,mode); } static inline HRESULT IDvdControl_VideoModePreference(IDvdControl* This,ULONG mode) { return This->lpVtbl->VideoModePreference(This,mode); } static inline HRESULT IDvdControl_SetRoot(IDvdControl* This,const WCHAR *path) { return This->lpVtbl->SetRoot(This,path); } static inline HRESULT IDvdControl_MouseActivate(IDvdControl* This,POINT point) { return This->lpVtbl->MouseActivate(This,point); } static inline HRESULT IDvdControl_MouseSelect(IDvdControl* This,POINT point) { return This->lpVtbl->MouseSelect(This,point); } static inline HRESULT IDvdControl_ChapterPlayAutoStop(IDvdControl* This,ULONG title,ULONG chapter,ULONG count) { return This->lpVtbl->ChapterPlayAutoStop(This,title,chapter,count); } #endif #endif #endif #endif /* __IDvdControl_INTERFACE_DEFINED__ */ /***************************************************************************** * IDvdInfo interface */ #ifndef __IDvdInfo_INTERFACE_DEFINED__ #define __IDvdInfo_INTERFACE_DEFINED__ DEFINE_GUID(IID_IDvdInfo, 0xa70efe60, 0xe2a3, 0x11d0, 0xa9,0xbe, 0x00,0xaa,0x00,0x61,0xbe,0x93); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("a70efe60-e2a3-11d0-a9be-00aa0061be93") IDvdInfo : public IUnknown { virtual HRESULT STDMETHODCALLTYPE GetCurrentDomain( DVD_DOMAIN *domain) = 0; virtual HRESULT STDMETHODCALLTYPE GetCurrentLocation( DVD_PLAYBACK_LOCATION *location) = 0; virtual HRESULT STDMETHODCALLTYPE GetTotalTitleTime( ULONG *time) = 0; virtual HRESULT STDMETHODCALLTYPE GetCurrentButton( ULONG *count, ULONG *current) = 0; virtual HRESULT STDMETHODCALLTYPE GetCurrentAngle( ULONG *count, ULONG *current) = 0; virtual HRESULT STDMETHODCALLTYPE GetCurrentAudio( ULONG *count, ULONG *current) = 0; virtual HRESULT STDMETHODCALLTYPE GetCurrentSubpicture( ULONG *count, ULONG *current, BOOL *enable) = 0; virtual HRESULT STDMETHODCALLTYPE GetCurrentUOPS( VALID_UOP_SOMTHING_OR_OTHER *uops) = 0; virtual HRESULT STDMETHODCALLTYPE GetAllSPRMs( SPRMARRAY *regs) = 0; virtual HRESULT STDMETHODCALLTYPE GetAllGPRMs( GPRMARRAY *regs) = 0; virtual HRESULT STDMETHODCALLTYPE GetAudioLanguage( ULONG stream, LCID *language) = 0; virtual HRESULT STDMETHODCALLTYPE GetSubpictureLanguage( ULONG stream, LCID *language) = 0; virtual HRESULT STDMETHODCALLTYPE GetTitleAttributes( ULONG title, DVD_ATR *attr) = 0; virtual HRESULT STDMETHODCALLTYPE GetVMGAttributes( DVD_ATR *attr) = 0; virtual HRESULT STDMETHODCALLTYPE GetCurrentVideoAttributes( DVD_VideoATR *attr) = 0; virtual HRESULT STDMETHODCALLTYPE GetCurrentAudioAttributes( DVD_AudioATR *attr) = 0; virtual HRESULT STDMETHODCALLTYPE GetCurrentSubpictureAttributes( DVD_SubpictureATR *attr) = 0; virtual HRESULT STDMETHODCALLTYPE GetCurrentVolumeInfo( ULONG *volume_count, ULONG *current, DVD_DISC_SIDE *side, ULONG *title_count) = 0; virtual HRESULT STDMETHODCALLTYPE GetDVDTextInfo( BYTE *text_manager, ULONG size, ULONG *ret_size) = 0; virtual HRESULT STDMETHODCALLTYPE GetPlayerParentalLevel( ULONG *level, ULONG *country_code) = 0; virtual HRESULT STDMETHODCALLTYPE GetNumberOfChapters( ULONG title, ULONG *count) = 0; virtual HRESULT STDMETHODCALLTYPE GetTitleParentalLevels( ULONG title, ULONG *levels) = 0; virtual HRESULT STDMETHODCALLTYPE GetRoot( char *path, ULONG size, ULONG *ret_size) = 0; }; #ifdef __CRT_UUID_DECL __CRT_UUID_DECL(IDvdInfo, 0xa70efe60, 0xe2a3, 0x11d0, 0xa9,0xbe, 0x00,0xaa,0x00,0x61,0xbe,0x93) #endif #else typedef struct IDvdInfoVtbl { BEGIN_INTERFACE /*** IUnknown methods ***/ HRESULT (STDMETHODCALLTYPE *QueryInterface)( IDvdInfo *This, REFIID riid, void **ppvObject); ULONG (STDMETHODCALLTYPE *AddRef)( IDvdInfo *This); ULONG (STDMETHODCALLTYPE *Release)( IDvdInfo *This); /*** IDvdInfo methods ***/ HRESULT (STDMETHODCALLTYPE *GetCurrentDomain)( IDvdInfo *This, DVD_DOMAIN *domain); HRESULT (STDMETHODCALLTYPE *GetCurrentLocation)( IDvdInfo *This, DVD_PLAYBACK_LOCATION *location); HRESULT (STDMETHODCALLTYPE *GetTotalTitleTime)( IDvdInfo *This, ULONG *time); HRESULT (STDMETHODCALLTYPE *GetCurrentButton)( IDvdInfo *This, ULONG *count, ULONG *current); HRESULT (STDMETHODCALLTYPE *GetCurrentAngle)( IDvdInfo *This, ULONG *count, ULONG *current); HRESULT (STDMETHODCALLTYPE *GetCurrentAudio)( IDvdInfo *This, ULONG *count, ULONG *current); HRESULT (STDMETHODCALLTYPE *GetCurrentSubpicture)( IDvdInfo *This, ULONG *count, ULONG *current, BOOL *enable); HRESULT (STDMETHODCALLTYPE *GetCurrentUOPS)( IDvdInfo *This, VALID_UOP_SOMTHING_OR_OTHER *uops); HRESULT (STDMETHODCALLTYPE *GetAllSPRMs)( IDvdInfo *This, SPRMARRAY *regs); HRESULT (STDMETHODCALLTYPE *GetAllGPRMs)( IDvdInfo *This, GPRMARRAY *regs); HRESULT (STDMETHODCALLTYPE *GetAudioLanguage)( IDvdInfo *This, ULONG stream, LCID *language); HRESULT (STDMETHODCALLTYPE *GetSubpictureLanguage)( IDvdInfo *This, ULONG stream, LCID *language); HRESULT (STDMETHODCALLTYPE *GetTitleAttributes)( IDvdInfo *This, ULONG title, DVD_ATR *attr); HRESULT (STDMETHODCALLTYPE *GetVMGAttributes)( IDvdInfo *This, DVD_ATR *attr); HRESULT (STDMETHODCALLTYPE *GetCurrentVideoAttributes)( IDvdInfo *This, DVD_VideoATR *attr); HRESULT (STDMETHODCALLTYPE *GetCurrentAudioAttributes)( IDvdInfo *This, DVD_AudioATR *attr); HRESULT (STDMETHODCALLTYPE *GetCurrentSubpictureAttributes)( IDvdInfo *This, DVD_SubpictureATR *attr); HRESULT (STDMETHODCALLTYPE *GetCurrentVolumeInfo)( IDvdInfo *This, ULONG *volume_count, ULONG *current, DVD_DISC_SIDE *side, ULONG *title_count); HRESULT (STDMETHODCALLTYPE *GetDVDTextInfo)( IDvdInfo *This, BYTE *text_manager, ULONG size, ULONG *ret_size); HRESULT (STDMETHODCALLTYPE *GetPlayerParentalLevel)( IDvdInfo *This, ULONG *level, ULONG *country_code); HRESULT (STDMETHODCALLTYPE *GetNumberOfChapters)( IDvdInfo *This, ULONG title, ULONG *count); HRESULT (STDMETHODCALLTYPE *GetTitleParentalLevels)( IDvdInfo *This, ULONG title, ULONG *levels); HRESULT (STDMETHODCALLTYPE *GetRoot)( IDvdInfo *This, char *path, ULONG size, ULONG *ret_size); END_INTERFACE } IDvdInfoVtbl; interface IDvdInfo { CONST_VTBL IDvdInfoVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ #define IDvdInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IDvdInfo_AddRef(This) (This)->lpVtbl->AddRef(This) #define IDvdInfo_Release(This) (This)->lpVtbl->Release(This) /*** IDvdInfo methods ***/ #define IDvdInfo_GetCurrentDomain(This,domain) (This)->lpVtbl->GetCurrentDomain(This,domain) #define IDvdInfo_GetCurrentLocation(This,location) (This)->lpVtbl->GetCurrentLocation(This,location) #define IDvdInfo_GetTotalTitleTime(This,time) (This)->lpVtbl->GetTotalTitleTime(This,time) #define IDvdInfo_GetCurrentButton(This,count,current) (This)->lpVtbl->GetCurrentButton(This,count,current) #define IDvdInfo_GetCurrentAngle(This,count,current) (This)->lpVtbl->GetCurrentAngle(This,count,current) #define IDvdInfo_GetCurrentAudio(This,count,current) (This)->lpVtbl->GetCurrentAudio(This,count,current) #define IDvdInfo_GetCurrentSubpicture(This,count,current,enable) (This)->lpVtbl->GetCurrentSubpicture(This,count,current,enable) #define IDvdInfo_GetCurrentUOPS(This,uops) (This)->lpVtbl->GetCurrentUOPS(This,uops) #define IDvdInfo_GetAllSPRMs(This,regs) (This)->lpVtbl->GetAllSPRMs(This,regs) #define IDvdInfo_GetAllGPRMs(This,regs) (This)->lpVtbl->GetAllGPRMs(This,regs) #define IDvdInfo_GetAudioLanguage(This,stream,language) (This)->lpVtbl->GetAudioLanguage(This,stream,language) #define IDvdInfo_GetSubpictureLanguage(This,stream,language) (This)->lpVtbl->GetSubpictureLanguage(This,stream,language) #define IDvdInfo_GetTitleAttributes(This,title,attr) (This)->lpVtbl->GetTitleAttributes(This,title,attr) #define IDvdInfo_GetVMGAttributes(This,attr) (This)->lpVtbl->GetVMGAttributes(This,attr) #define IDvdInfo_GetCurrentVideoAttributes(This,attr) (This)->lpVtbl->GetCurrentVideoAttributes(This,attr) #define IDvdInfo_GetCurrentAudioAttributes(This,attr) (This)->lpVtbl->GetCurrentAudioAttributes(This,attr) #define IDvdInfo_GetCurrentSubpictureAttributes(This,attr) (This)->lpVtbl->GetCurrentSubpictureAttributes(This,attr) #define IDvdInfo_GetCurrentVolumeInfo(This,volume_count,current,side,title_count) (This)->lpVtbl->GetCurrentVolumeInfo(This,volume_count,current,side,title_count) #define IDvdInfo_GetDVDTextInfo(This,text_manager,size,ret_size) (This)->lpVtbl->GetDVDTextInfo(This,text_manager,size,ret_size) #define IDvdInfo_GetPlayerParentalLevel(This,level,country_code) (This)->lpVtbl->GetPlayerParentalLevel(This,level,country_code) #define IDvdInfo_GetNumberOfChapters(This,title,count) (This)->lpVtbl->GetNumberOfChapters(This,title,count) #define IDvdInfo_GetTitleParentalLevels(This,title,levels) (This)->lpVtbl->GetTitleParentalLevels(This,title,levels) #define IDvdInfo_GetRoot(This,path,size,ret_size) (This)->lpVtbl->GetRoot(This,path,size,ret_size) #else /*** IUnknown methods ***/ static inline HRESULT IDvdInfo_QueryInterface(IDvdInfo* This,REFIID riid,void **ppvObject) { return This->lpVtbl->QueryInterface(This,riid,ppvObject); } static inline ULONG IDvdInfo_AddRef(IDvdInfo* This) { return This->lpVtbl->AddRef(This); } static inline ULONG IDvdInfo_Release(IDvdInfo* This) { return This->lpVtbl->Release(This); } /*** IDvdInfo methods ***/ static inline HRESULT IDvdInfo_GetCurrentDomain(IDvdInfo* This,DVD_DOMAIN *domain) { return This->lpVtbl->GetCurrentDomain(This,domain); } static inline HRESULT IDvdInfo_GetCurrentLocation(IDvdInfo* This,DVD_PLAYBACK_LOCATION *location) { return This->lpVtbl->GetCurrentLocation(This,location); } static inline HRESULT IDvdInfo_GetTotalTitleTime(IDvdInfo* This,ULONG *time) { return This->lpVtbl->GetTotalTitleTime(This,time); } static inline HRESULT IDvdInfo_GetCurrentButton(IDvdInfo* This,ULONG *count,ULONG *current) { return This->lpVtbl->GetCurrentButton(This,count,current); } static inline HRESULT IDvdInfo_GetCurrentAngle(IDvdInfo* This,ULONG *count,ULONG *current) { return This->lpVtbl->GetCurrentAngle(This,count,current); } static inline HRESULT IDvdInfo_GetCurrentAudio(IDvdInfo* This,ULONG *count,ULONG *current) { return This->lpVtbl->GetCurrentAudio(This,count,current); } static inline HRESULT IDvdInfo_GetCurrentSubpicture(IDvdInfo* This,ULONG *count,ULONG *current,BOOL *enable) { return This->lpVtbl->GetCurrentSubpicture(This,count,current,enable); } static inline HRESULT IDvdInfo_GetCurrentUOPS(IDvdInfo* This,VALID_UOP_SOMTHING_OR_OTHER *uops) { return This->lpVtbl->GetCurrentUOPS(This,uops); } static inline HRESULT IDvdInfo_GetAllSPRMs(IDvdInfo* This,SPRMARRAY *regs) { return This->lpVtbl->GetAllSPRMs(This,regs); } static inline HRESULT IDvdInfo_GetAllGPRMs(IDvdInfo* This,GPRMARRAY *regs) { return This->lpVtbl->GetAllGPRMs(This,regs); } static inline HRESULT IDvdInfo_GetAudioLanguage(IDvdInfo* This,ULONG stream,LCID *language) { return This->lpVtbl->GetAudioLanguage(This,stream,language); } static inline HRESULT IDvdInfo_GetSubpictureLanguage(IDvdInfo* This,ULONG stream,LCID *language) { return This->lpVtbl->GetSubpictureLanguage(This,stream,language); } static inline HRESULT IDvdInfo_GetTitleAttributes(IDvdInfo* This,ULONG title,DVD_ATR *attr) { return This->lpVtbl->GetTitleAttributes(This,title,attr); } static inline HRESULT IDvdInfo_GetVMGAttributes(IDvdInfo* This,DVD_ATR *attr) { return This->lpVtbl->GetVMGAttributes(This,attr); } static inline HRESULT IDvdInfo_GetCurrentVideoAttributes(IDvdInfo* This,DVD_VideoATR *attr) { return This->lpVtbl->GetCurrentVideoAttributes(This,attr); } static inline HRESULT IDvdInfo_GetCurrentAudioAttributes(IDvdInfo* This,DVD_AudioATR *attr) { return This->lpVtbl->GetCurrentAudioAttributes(This,attr); } static inline HRESULT IDvdInfo_GetCurrentSubpictureAttributes(IDvdInfo* This,DVD_SubpictureATR *attr) { return This->lpVtbl->GetCurrentSubpictureAttributes(This,attr); } static inline HRESULT IDvdInfo_GetCurrentVolumeInfo(IDvdInfo* This,ULONG *volume_count,ULONG *current,DVD_DISC_SIDE *side,ULONG *title_count) { return This->lpVtbl->GetCurrentVolumeInfo(This,volume_count,current,side,title_count); } static inline HRESULT IDvdInfo_GetDVDTextInfo(IDvdInfo* This,BYTE *text_manager,ULONG size,ULONG *ret_size) { return This->lpVtbl->GetDVDTextInfo(This,text_manager,size,ret_size); } static inline HRESULT IDvdInfo_GetPlayerParentalLevel(IDvdInfo* This,ULONG *level,ULONG *country_code) { return This->lpVtbl->GetPlayerParentalLevel(This,level,country_code); } static inline HRESULT IDvdInfo_GetNumberOfChapters(IDvdInfo* This,ULONG title,ULONG *count) { return This->lpVtbl->GetNumberOfChapters(This,title,count); } static inline HRESULT IDvdInfo_GetTitleParentalLevels(IDvdInfo* This,ULONG title,ULONG *levels) { return This->lpVtbl->GetTitleParentalLevels(This,title,levels); } static inline HRESULT IDvdInfo_GetRoot(IDvdInfo* This,char *path,ULONG size,ULONG *ret_size) { return This->lpVtbl->GetRoot(This,path,size,ret_size); } #endif #endif #endif #endif /* __IDvdInfo_INTERFACE_DEFINED__ */ /***************************************************************************** * IDvdCmd interface */ #ifndef __IDvdCmd_INTERFACE_DEFINED__ #define __IDvdCmd_INTERFACE_DEFINED__ DEFINE_GUID(IID_IDvdCmd, 0x5a4a97e4, 0x94ee, 0x4a55, 0x97,0x51, 0x74,0xb5,0x64,0x3a,0xa2,0x7d); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("5a4a97e4-94ee-4a55-9751-74b5643aa27d") IDvdCmd : public IUnknown { virtual HRESULT STDMETHODCALLTYPE WaitForStart( ) = 0; virtual HRESULT STDMETHODCALLTYPE WaitForEnd( ) = 0; }; #ifdef __CRT_UUID_DECL __CRT_UUID_DECL(IDvdCmd, 0x5a4a97e4, 0x94ee, 0x4a55, 0x97,0x51, 0x74,0xb5,0x64,0x3a,0xa2,0x7d) #endif #else typedef struct IDvdCmdVtbl { BEGIN_INTERFACE /*** IUnknown methods ***/ HRESULT (STDMETHODCALLTYPE *QueryInterface)( IDvdCmd *This, REFIID riid, void **ppvObject); ULONG (STDMETHODCALLTYPE *AddRef)( IDvdCmd *This); ULONG (STDMETHODCALLTYPE *Release)( IDvdCmd *This); /*** IDvdCmd methods ***/ HRESULT (STDMETHODCALLTYPE *WaitForStart)( IDvdCmd *This); HRESULT (STDMETHODCALLTYPE *WaitForEnd)( IDvdCmd *This); END_INTERFACE } IDvdCmdVtbl; interface IDvdCmd { CONST_VTBL IDvdCmdVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ #define IDvdCmd_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IDvdCmd_AddRef(This) (This)->lpVtbl->AddRef(This) #define IDvdCmd_Release(This) (This)->lpVtbl->Release(This) /*** IDvdCmd methods ***/ #define IDvdCmd_WaitForStart(This) (This)->lpVtbl->WaitForStart(This) #define IDvdCmd_WaitForEnd(This) (This)->lpVtbl->WaitForEnd(This) #else /*** IUnknown methods ***/ static inline HRESULT IDvdCmd_QueryInterface(IDvdCmd* This,REFIID riid,void **ppvObject) { return This->lpVtbl->QueryInterface(This,riid,ppvObject); } static inline ULONG IDvdCmd_AddRef(IDvdCmd* This) { return This->lpVtbl->AddRef(This); } static inline ULONG IDvdCmd_Release(IDvdCmd* This) { return This->lpVtbl->Release(This); } /*** IDvdCmd methods ***/ static inline HRESULT IDvdCmd_WaitForStart(IDvdCmd* This) { return This->lpVtbl->WaitForStart(This); } static inline HRESULT IDvdCmd_WaitForEnd(IDvdCmd* This) { return This->lpVtbl->WaitForEnd(This); } #endif #endif #endif #endif /* __IDvdCmd_INTERFACE_DEFINED__ */ /***************************************************************************** * IDvdState interface */ #ifndef __IDvdState_INTERFACE_DEFINED__ #define __IDvdState_INTERFACE_DEFINED__ DEFINE_GUID(IID_IDvdState, 0x86303d6d, 0x1c4a, 0x4087, 0xab,0x42, 0xf7,0x11,0x16,0x70,0x48,0xef); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("86303d6d-1c4a-4087-ab42-f711167048ef") IDvdState : public IUnknown { virtual HRESULT STDMETHODCALLTYPE GetDiscID( ULONGLONG *id) = 0; virtual HRESULT STDMETHODCALLTYPE GetParentalLevel( ULONG *level) = 0; }; #ifdef __CRT_UUID_DECL __CRT_UUID_DECL(IDvdState, 0x86303d6d, 0x1c4a, 0x4087, 0xab,0x42, 0xf7,0x11,0x16,0x70,0x48,0xef) #endif #else typedef struct IDvdStateVtbl { BEGIN_INTERFACE /*** IUnknown methods ***/ HRESULT (STDMETHODCALLTYPE *QueryInterface)( IDvdState *This, REFIID riid, void **ppvObject); ULONG (STDMETHODCALLTYPE *AddRef)( IDvdState *This); ULONG (STDMETHODCALLTYPE *Release)( IDvdState *This); /*** IDvdState methods ***/ HRESULT (STDMETHODCALLTYPE *GetDiscID)( IDvdState *This, ULONGLONG *id); HRESULT (STDMETHODCALLTYPE *GetParentalLevel)( IDvdState *This, ULONG *level); END_INTERFACE } IDvdStateVtbl; interface IDvdState { CONST_VTBL IDvdStateVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ #define IDvdState_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IDvdState_AddRef(This) (This)->lpVtbl->AddRef(This) #define IDvdState_Release(This) (This)->lpVtbl->Release(This) /*** IDvdState methods ***/ #define IDvdState_GetDiscID(This,id) (This)->lpVtbl->GetDiscID(This,id) #define IDvdState_GetParentalLevel(This,level) (This)->lpVtbl->GetParentalLevel(This,level) #else /*** IUnknown methods ***/ static inline HRESULT IDvdState_QueryInterface(IDvdState* This,REFIID riid,void **ppvObject) { return This->lpVtbl->QueryInterface(This,riid,ppvObject); } static inline ULONG IDvdState_AddRef(IDvdState* This) { return This->lpVtbl->AddRef(This); } static inline ULONG IDvdState_Release(IDvdState* This) { return This->lpVtbl->Release(This); } /*** IDvdState methods ***/ static inline HRESULT IDvdState_GetDiscID(IDvdState* This,ULONGLONG *id) { return This->lpVtbl->GetDiscID(This,id); } static inline HRESULT IDvdState_GetParentalLevel(IDvdState* This,ULONG *level) { return This->lpVtbl->GetParentalLevel(This,level); } #endif #endif #endif #endif /* __IDvdState_INTERFACE_DEFINED__ */ /***************************************************************************** * IDvdControl2 interface */ #ifndef __IDvdControl2_INTERFACE_DEFINED__ #define __IDvdControl2_INTERFACE_DEFINED__ DEFINE_GUID(IID_IDvdControl2, 0x33bc7430, 0xeec0, 0x11d2, 0x82,0x01, 0x00,0xa0,0xc9,0xd7,0x48,0x42); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("33bc7430-eec0-11d2-8201-00a0c9d74842") IDvdControl2 : public IUnknown { virtual HRESULT STDMETHODCALLTYPE PlayTitle( ULONG title, DWORD flags, IDvdCmd **cmd) = 0; virtual HRESULT STDMETHODCALLTYPE PlayChapterInTitle( ULONG title, ULONG chapter, DWORD flags, IDvdCmd **cmd) = 0; virtual HRESULT STDMETHODCALLTYPE PlayTimeInTitle( ULONG title, DVD_HMSF_TIMECODE *time, DWORD flags, IDvdCmd **cmd) = 0; virtual HRESULT STDMETHODCALLTYPE Stop( ) = 0; virtual HRESULT STDMETHODCALLTYPE ReturnFromSubmenu( DWORD flags, IDvdCmd **cmd) = 0; virtual HRESULT STDMETHODCALLTYPE PlayAtTime( DVD_HMSF_TIMECODE *time, DWORD flags, IDvdCmd **cmd) = 0; virtual HRESULT STDMETHODCALLTYPE PlayChapter( ULONG chapter, DWORD flags, IDvdCmd **cmd) = 0; virtual HRESULT STDMETHODCALLTYPE PlayPrevChapter( DWORD flags, IDvdCmd **cmd) = 0; virtual HRESULT STDMETHODCALLTYPE ReplayChapter( DWORD flags, IDvdCmd **cmd) = 0; virtual HRESULT STDMETHODCALLTYPE PlayNextChapter( DWORD flags, IDvdCmd **cmd) = 0; virtual HRESULT STDMETHODCALLTYPE PlayForwards( double speed, DWORD flags, IDvdCmd **cmd) = 0; virtual HRESULT STDMETHODCALLTYPE PlayBackwards( double speed, DWORD flags, IDvdCmd **cmd) = 0; virtual HRESULT STDMETHODCALLTYPE ShowMenu( DVD_MENU_ID id, DWORD flags, IDvdCmd **cmd) = 0; virtual HRESULT STDMETHODCALLTYPE Resume( DWORD flags, IDvdCmd **cmd) = 0; virtual HRESULT STDMETHODCALLTYPE SelectRelativeButton( DVD_RELATIVE_BUTTON button) = 0; virtual HRESULT STDMETHODCALLTYPE ActivateButton( ) = 0; virtual HRESULT STDMETHODCALLTYPE SelectButton( ULONG button) = 0; virtual HRESULT STDMETHODCALLTYPE SelectAndActivateButton( ULONG button) = 0; virtual HRESULT STDMETHODCALLTYPE StillOff( ) = 0; virtual HRESULT STDMETHODCALLTYPE Pause( BOOL enable) = 0; virtual HRESULT STDMETHODCALLTYPE SelectAudioStream( ULONG stream, DWORD flags, IDvdCmd **cmd) = 0; virtual HRESULT STDMETHODCALLTYPE SelectSubpictureStream( ULONG stream, DWORD flags, IDvdCmd **cmd) = 0; virtual HRESULT STDMETHODCALLTYPE SetSubpictureState( BOOL enable, DWORD flags, IDvdCmd **cmd) = 0; virtual HRESULT STDMETHODCALLTYPE SelectAngle( ULONG angle, DWORD flags, IDvdCmd **cmd) = 0; virtual HRESULT STDMETHODCALLTYPE SelectParentalLevel( ULONG level) = 0; virtual HRESULT STDMETHODCALLTYPE SelectParentalCountry( BYTE country[2]) = 0; virtual HRESULT STDMETHODCALLTYPE SelectKaraokeAudioPresentationMode( ULONG mode) = 0; virtual HRESULT STDMETHODCALLTYPE SelectVideoModePreference( ULONG mode) = 0; virtual HRESULT STDMETHODCALLTYPE SetDVDDirectory( const WCHAR *path) = 0; virtual HRESULT STDMETHODCALLTYPE ActivateAtPosition( POINT point) = 0; virtual HRESULT STDMETHODCALLTYPE SelectAtPosition( POINT point) = 0; virtual HRESULT STDMETHODCALLTYPE PlayChaptersAutoStop( ULONG title, ULONG chapter, ULONG count, DWORD flags, IDvdCmd **cmd) = 0; virtual HRESULT STDMETHODCALLTYPE AcceptParentalLevelChange( BOOL accept) = 0; virtual HRESULT STDMETHODCALLTYPE SetOption( DVD_OPTION_FLAG flag, BOOL option) = 0; virtual HRESULT STDMETHODCALLTYPE SetState( IDvdState *state, DWORD flags, IDvdCmd **cmd) = 0; virtual HRESULT STDMETHODCALLTYPE PlayPeriodInTitleAutoStop( ULONG title, DVD_HMSF_TIMECODE *start_time, DVD_HMSF_TIMECODE *end_time, DWORD flags, IDvdCmd **cmd) = 0; virtual HRESULT STDMETHODCALLTYPE SetGRPM( ULONG index, WORD value, DWORD flags, IDvdCmd **cmd) = 0; virtual HRESULT STDMETHODCALLTYPE SelectDefaultMenuLanguage( LCID language) = 0; virtual HRESULT STDMETHODCALLTYPE SelectDefaultAudioLanguage( LCID language, DVD_AUDIO_LANG_EXT extension) = 0; virtual HRESULT STDMETHODCALLTYPE SelectDefaultSubpictureLanguage( LCID language, DVD_SUBPICTURE_LANG_EXT extension) = 0; }; #ifdef __CRT_UUID_DECL __CRT_UUID_DECL(IDvdControl2, 0x33bc7430, 0xeec0, 0x11d2, 0x82,0x01, 0x00,0xa0,0xc9,0xd7,0x48,0x42) #endif #else typedef struct IDvdControl2Vtbl { BEGIN_INTERFACE /*** IUnknown methods ***/ HRESULT (STDMETHODCALLTYPE *QueryInterface)( IDvdControl2 *This, REFIID riid, void **ppvObject); ULONG (STDMETHODCALLTYPE *AddRef)( IDvdControl2 *This); ULONG (STDMETHODCALLTYPE *Release)( IDvdControl2 *This); /*** IDvdControl2 methods ***/ HRESULT (STDMETHODCALLTYPE *PlayTitle)( IDvdControl2 *This, ULONG title, DWORD flags, IDvdCmd **cmd); HRESULT (STDMETHODCALLTYPE *PlayChapterInTitle)( IDvdControl2 *This, ULONG title, ULONG chapter, DWORD flags, IDvdCmd **cmd); HRESULT (STDMETHODCALLTYPE *PlayTimeInTitle)( IDvdControl2 *This, ULONG title, DVD_HMSF_TIMECODE *time, DWORD flags, IDvdCmd **cmd); HRESULT (STDMETHODCALLTYPE *Stop)( IDvdControl2 *This); HRESULT (STDMETHODCALLTYPE *ReturnFromSubmenu)( IDvdControl2 *This, DWORD flags, IDvdCmd **cmd); HRESULT (STDMETHODCALLTYPE *PlayAtTime)( IDvdControl2 *This, DVD_HMSF_TIMECODE *time, DWORD flags, IDvdCmd **cmd); HRESULT (STDMETHODCALLTYPE *PlayChapter)( IDvdControl2 *This, ULONG chapter, DWORD flags, IDvdCmd **cmd); HRESULT (STDMETHODCALLTYPE *PlayPrevChapter)( IDvdControl2 *This, DWORD flags, IDvdCmd **cmd); HRESULT (STDMETHODCALLTYPE *ReplayChapter)( IDvdControl2 *This, DWORD flags, IDvdCmd **cmd); HRESULT (STDMETHODCALLTYPE *PlayNextChapter)( IDvdControl2 *This, DWORD flags, IDvdCmd **cmd); HRESULT (STDMETHODCALLTYPE *PlayForwards)( IDvdControl2 *This, double speed, DWORD flags, IDvdCmd **cmd); HRESULT (STDMETHODCALLTYPE *PlayBackwards)( IDvdControl2 *This, double speed, DWORD flags, IDvdCmd **cmd); HRESULT (STDMETHODCALLTYPE *ShowMenu)( IDvdControl2 *This, DVD_MENU_ID id, DWORD flags, IDvdCmd **cmd); HRESULT (STDMETHODCALLTYPE *Resume)( IDvdControl2 *This, DWORD flags, IDvdCmd **cmd); HRESULT (STDMETHODCALLTYPE *SelectRelativeButton)( IDvdControl2 *This, DVD_RELATIVE_BUTTON button); HRESULT (STDMETHODCALLTYPE *ActivateButton)( IDvdControl2 *This); HRESULT (STDMETHODCALLTYPE *SelectButton)( IDvdControl2 *This, ULONG button); HRESULT (STDMETHODCALLTYPE *SelectAndActivateButton)( IDvdControl2 *This, ULONG button); HRESULT (STDMETHODCALLTYPE *StillOff)( IDvdControl2 *This); HRESULT (STDMETHODCALLTYPE *Pause)( IDvdControl2 *This, BOOL enable); HRESULT (STDMETHODCALLTYPE *SelectAudioStream)( IDvdControl2 *This, ULONG stream, DWORD flags, IDvdCmd **cmd); HRESULT (STDMETHODCALLTYPE *SelectSubpictureStream)( IDvdControl2 *This, ULONG stream, DWORD flags, IDvdCmd **cmd); HRESULT (STDMETHODCALLTYPE *SetSubpictureState)( IDvdControl2 *This, BOOL enable, DWORD flags, IDvdCmd **cmd); HRESULT (STDMETHODCALLTYPE *SelectAngle)( IDvdControl2 *This, ULONG angle, DWORD flags, IDvdCmd **cmd); HRESULT (STDMETHODCALLTYPE *SelectParentalLevel)( IDvdControl2 *This, ULONG level); HRESULT (STDMETHODCALLTYPE *SelectParentalCountry)( IDvdControl2 *This, BYTE country[2]); HRESULT (STDMETHODCALLTYPE *SelectKaraokeAudioPresentationMode)( IDvdControl2 *This, ULONG mode); HRESULT (STDMETHODCALLTYPE *SelectVideoModePreference)( IDvdControl2 *This, ULONG mode); HRESULT (STDMETHODCALLTYPE *SetDVDDirectory)( IDvdControl2 *This, const WCHAR *path); HRESULT (STDMETHODCALLTYPE *ActivateAtPosition)( IDvdControl2 *This, POINT point); HRESULT (STDMETHODCALLTYPE *SelectAtPosition)( IDvdControl2 *This, POINT point); HRESULT (STDMETHODCALLTYPE *PlayChaptersAutoStop)( IDvdControl2 *This, ULONG title, ULONG chapter, ULONG count, DWORD flags, IDvdCmd **cmd); HRESULT (STDMETHODCALLTYPE *AcceptParentalLevelChange)( IDvdControl2 *This, BOOL accept); HRESULT (STDMETHODCALLTYPE *SetOption)( IDvdControl2 *This, DVD_OPTION_FLAG flag, BOOL option); HRESULT (STDMETHODCALLTYPE *SetState)( IDvdControl2 *This, IDvdState *state, DWORD flags, IDvdCmd **cmd); HRESULT (STDMETHODCALLTYPE *PlayPeriodInTitleAutoStop)( IDvdControl2 *This, ULONG title, DVD_HMSF_TIMECODE *start_time, DVD_HMSF_TIMECODE *end_time, DWORD flags, IDvdCmd **cmd); HRESULT (STDMETHODCALLTYPE *SetGRPM)( IDvdControl2 *This, ULONG index, WORD value, DWORD flags, IDvdCmd **cmd); HRESULT (STDMETHODCALLTYPE *SelectDefaultMenuLanguage)( IDvdControl2 *This, LCID language); HRESULT (STDMETHODCALLTYPE *SelectDefaultAudioLanguage)( IDvdControl2 *This, LCID language, DVD_AUDIO_LANG_EXT extension); HRESULT (STDMETHODCALLTYPE *SelectDefaultSubpictureLanguage)( IDvdControl2 *This, LCID language, DVD_SUBPICTURE_LANG_EXT extension); END_INTERFACE } IDvdControl2Vtbl; interface IDvdControl2 { CONST_VTBL IDvdControl2Vtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ #define IDvdControl2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IDvdControl2_AddRef(This) (This)->lpVtbl->AddRef(This) #define IDvdControl2_Release(This) (This)->lpVtbl->Release(This) /*** IDvdControl2 methods ***/ #define IDvdControl2_PlayTitle(This,title,flags,cmd) (This)->lpVtbl->PlayTitle(This,title,flags,cmd) #define IDvdControl2_PlayChapterInTitle(This,title,chapter,flags,cmd) (This)->lpVtbl->PlayChapterInTitle(This,title,chapter,flags,cmd) #define IDvdControl2_PlayTimeInTitle(This,title,time,flags,cmd) (This)->lpVtbl->PlayTimeInTitle(This,title,time,flags,cmd) #define IDvdControl2_Stop(This) (This)->lpVtbl->Stop(This) #define IDvdControl2_ReturnFromSubmenu(This,flags,cmd) (This)->lpVtbl->ReturnFromSubmenu(This,flags,cmd) #define IDvdControl2_PlayAtTime(This,time,flags,cmd) (This)->lpVtbl->PlayAtTime(This,time,flags,cmd) #define IDvdControl2_PlayChapter(This,chapter,flags,cmd) (This)->lpVtbl->PlayChapter(This,chapter,flags,cmd) #define IDvdControl2_PlayPrevChapter(This,flags,cmd) (This)->lpVtbl->PlayPrevChapter(This,flags,cmd) #define IDvdControl2_ReplayChapter(This,flags,cmd) (This)->lpVtbl->ReplayChapter(This,flags,cmd) #define IDvdControl2_PlayNextChapter(This,flags,cmd) (This)->lpVtbl->PlayNextChapter(This,flags,cmd) #define IDvdControl2_PlayForwards(This,speed,flags,cmd) (This)->lpVtbl->PlayForwards(This,speed,flags,cmd) #define IDvdControl2_PlayBackwards(This,speed,flags,cmd) (This)->lpVtbl->PlayBackwards(This,speed,flags,cmd) #define IDvdControl2_ShowMenu(This,id,flags,cmd) (This)->lpVtbl->ShowMenu(This,id,flags,cmd) #define IDvdControl2_Resume(This,flags,cmd) (This)->lpVtbl->Resume(This,flags,cmd) #define IDvdControl2_SelectRelativeButton(This,button) (This)->lpVtbl->SelectRelativeButton(This,button) #define IDvdControl2_ActivateButton(This) (This)->lpVtbl->ActivateButton(This) #define IDvdControl2_SelectButton(This,button) (This)->lpVtbl->SelectButton(This,button) #define IDvdControl2_SelectAndActivateButton(This,button) (This)->lpVtbl->SelectAndActivateButton(This,button) #define IDvdControl2_StillOff(This) (This)->lpVtbl->StillOff(This) #define IDvdControl2_Pause(This,enable) (This)->lpVtbl->Pause(This,enable) #define IDvdControl2_SelectAudioStream(This,stream,flags,cmd) (This)->lpVtbl->SelectAudioStream(This,stream,flags,cmd) #define IDvdControl2_SelectSubpictureStream(This,stream,flags,cmd) (This)->lpVtbl->SelectSubpictureStream(This,stream,flags,cmd) #define IDvdControl2_SetSubpictureState(This,enable,flags,cmd) (This)->lpVtbl->SetSubpictureState(This,enable,flags,cmd) #define IDvdControl2_SelectAngle(This,angle,flags,cmd) (This)->lpVtbl->SelectAngle(This,angle,flags,cmd) #define IDvdControl2_SelectParentalLevel(This,level) (This)->lpVtbl->SelectParentalLevel(This,level) #define IDvdControl2_SelectParentalCountry(This,country) (This)->lpVtbl->SelectParentalCountry(This,country) #define IDvdControl2_SelectKaraokeAudioPresentationMode(This,mode) (This)->lpVtbl->SelectKaraokeAudioPresentationMode(This,mode) #define IDvdControl2_SelectVideoModePreference(This,mode) (This)->lpVtbl->SelectVideoModePreference(This,mode) #define IDvdControl2_SetDVDDirectory(This,path) (This)->lpVtbl->SetDVDDirectory(This,path) #define IDvdControl2_ActivateAtPosition(This,point) (This)->lpVtbl->ActivateAtPosition(This,point) #define IDvdControl2_SelectAtPosition(This,point) (This)->lpVtbl->SelectAtPosition(This,point) #define IDvdControl2_PlayChaptersAutoStop(This,title,chapter,count,flags,cmd) (This)->lpVtbl->PlayChaptersAutoStop(This,title,chapter,count,flags,cmd) #define IDvdControl2_AcceptParentalLevelChange(This,accept) (This)->lpVtbl->AcceptParentalLevelChange(This,accept) #define IDvdControl2_SetOption(This,flag,option) (This)->lpVtbl->SetOption(This,flag,option) #define IDvdControl2_SetState(This,state,flags,cmd) (This)->lpVtbl->SetState(This,state,flags,cmd) #define IDvdControl2_PlayPeriodInTitleAutoStop(This,title,start_time,end_time,flags,cmd) (This)->lpVtbl->PlayPeriodInTitleAutoStop(This,title,start_time,end_time,flags,cmd) #define IDvdControl2_SetGRPM(This,index,value,flags,cmd) (This)->lpVtbl->SetGRPM(This,index,value,flags,cmd) #define IDvdControl2_SelectDefaultMenuLanguage(This,language) (This)->lpVtbl->SelectDefaultMenuLanguage(This,language) #define IDvdControl2_SelectDefaultAudioLanguage(This,language,extension) (This)->lpVtbl->SelectDefaultAudioLanguage(This,language,extension) #define IDvdControl2_SelectDefaultSubpictureLanguage(This,language,extension) (This)->lpVtbl->SelectDefaultSubpictureLanguage(This,language,extension) #else /*** IUnknown methods ***/ static inline HRESULT IDvdControl2_QueryInterface(IDvdControl2* This,REFIID riid,void **ppvObject) { return This->lpVtbl->QueryInterface(This,riid,ppvObject); } static inline ULONG IDvdControl2_AddRef(IDvdControl2* This) { return This->lpVtbl->AddRef(This); } static inline ULONG IDvdControl2_Release(IDvdControl2* This) { return This->lpVtbl->Release(This); } /*** IDvdControl2 methods ***/ static inline HRESULT IDvdControl2_PlayTitle(IDvdControl2* This,ULONG title,DWORD flags,IDvdCmd **cmd) { return This->lpVtbl->PlayTitle(This,title,flags,cmd); } static inline HRESULT IDvdControl2_PlayChapterInTitle(IDvdControl2* This,ULONG title,ULONG chapter,DWORD flags,IDvdCmd **cmd) { return This->lpVtbl->PlayChapterInTitle(This,title,chapter,flags,cmd); } static inline HRESULT IDvdControl2_PlayTimeInTitle(IDvdControl2* This,ULONG title,DVD_HMSF_TIMECODE *time,DWORD flags,IDvdCmd **cmd) { return This->lpVtbl->PlayTimeInTitle(This,title,time,flags,cmd); } static inline HRESULT IDvdControl2_Stop(IDvdControl2* This) { return This->lpVtbl->Stop(This); } static inline HRESULT IDvdControl2_ReturnFromSubmenu(IDvdControl2* This,DWORD flags,IDvdCmd **cmd) { return This->lpVtbl->ReturnFromSubmenu(This,flags,cmd); } static inline HRESULT IDvdControl2_PlayAtTime(IDvdControl2* This,DVD_HMSF_TIMECODE *time,DWORD flags,IDvdCmd **cmd) { return This->lpVtbl->PlayAtTime(This,time,flags,cmd); } static inline HRESULT IDvdControl2_PlayChapter(IDvdControl2* This,ULONG chapter,DWORD flags,IDvdCmd **cmd) { return This->lpVtbl->PlayChapter(This,chapter,flags,cmd); } static inline HRESULT IDvdControl2_PlayPrevChapter(IDvdControl2* This,DWORD flags,IDvdCmd **cmd) { return This->lpVtbl->PlayPrevChapter(This,flags,cmd); } static inline HRESULT IDvdControl2_ReplayChapter(IDvdControl2* This,DWORD flags,IDvdCmd **cmd) { return This->lpVtbl->ReplayChapter(This,flags,cmd); } static inline HRESULT IDvdControl2_PlayNextChapter(IDvdControl2* This,DWORD flags,IDvdCmd **cmd) { return This->lpVtbl->PlayNextChapter(This,flags,cmd); } static inline HRESULT IDvdControl2_PlayForwards(IDvdControl2* This,double speed,DWORD flags,IDvdCmd **cmd) { return This->lpVtbl->PlayForwards(This,speed,flags,cmd); } static inline HRESULT IDvdControl2_PlayBackwards(IDvdControl2* This,double speed,DWORD flags,IDvdCmd **cmd) { return This->lpVtbl->PlayBackwards(This,speed,flags,cmd); } static inline HRESULT IDvdControl2_ShowMenu(IDvdControl2* This,DVD_MENU_ID id,DWORD flags,IDvdCmd **cmd) { return This->lpVtbl->ShowMenu(This,id,flags,cmd); } static inline HRESULT IDvdControl2_Resume(IDvdControl2* This,DWORD flags,IDvdCmd **cmd) { return This->lpVtbl->Resume(This,flags,cmd); } static inline HRESULT IDvdControl2_SelectRelativeButton(IDvdControl2* This,DVD_RELATIVE_BUTTON button) { return This->lpVtbl->SelectRelativeButton(This,button); } static inline HRESULT IDvdControl2_ActivateButton(IDvdControl2* This) { return This->lpVtbl->ActivateButton(This); } static inline HRESULT IDvdControl2_SelectButton(IDvdControl2* This,ULONG button) { return This->lpVtbl->SelectButton(This,button); } static inline HRESULT IDvdControl2_SelectAndActivateButton(IDvdControl2* This,ULONG button) { return This->lpVtbl->SelectAndActivateButton(This,button); } static inline HRESULT IDvdControl2_StillOff(IDvdControl2* This) { return This->lpVtbl->StillOff(This); } static inline HRESULT IDvdControl2_Pause(IDvdControl2* This,BOOL enable) { return This->lpVtbl->Pause(This,enable); } static inline HRESULT IDvdControl2_SelectAudioStream(IDvdControl2* This,ULONG stream,DWORD flags,IDvdCmd **cmd) { return This->lpVtbl->SelectAudioStream(This,stream,flags,cmd); } static inline HRESULT IDvdControl2_SelectSubpictureStream(IDvdControl2* This,ULONG stream,DWORD flags,IDvdCmd **cmd) { return This->lpVtbl->SelectSubpictureStream(This,stream,flags,cmd); } static inline HRESULT IDvdControl2_SetSubpictureState(IDvdControl2* This,BOOL enable,DWORD flags,IDvdCmd **cmd) { return This->lpVtbl->SetSubpictureState(This,enable,flags,cmd); } static inline HRESULT IDvdControl2_SelectAngle(IDvdControl2* This,ULONG angle,DWORD flags,IDvdCmd **cmd) { return This->lpVtbl->SelectAngle(This,angle,flags,cmd); } static inline HRESULT IDvdControl2_SelectParentalLevel(IDvdControl2* This,ULONG level) { return This->lpVtbl->SelectParentalLevel(This,level); } static inline HRESULT IDvdControl2_SelectParentalCountry(IDvdControl2* This,BYTE country[2]) { return This->lpVtbl->SelectParentalCountry(This,country); } static inline HRESULT IDvdControl2_SelectKaraokeAudioPresentationMode(IDvdControl2* This,ULONG mode) { return This->lpVtbl->SelectKaraokeAudioPresentationMode(This,mode); } static inline HRESULT IDvdControl2_SelectVideoModePreference(IDvdControl2* This,ULONG mode) { return This->lpVtbl->SelectVideoModePreference(This,mode); } static inline HRESULT IDvdControl2_SetDVDDirectory(IDvdControl2* This,const WCHAR *path) { return This->lpVtbl->SetDVDDirectory(This,path); } static inline HRESULT IDvdControl2_ActivateAtPosition(IDvdControl2* This,POINT point) { return This->lpVtbl->ActivateAtPosition(This,point); } static inline HRESULT IDvdControl2_SelectAtPosition(IDvdControl2* This,POINT point) { return This->lpVtbl->SelectAtPosition(This,point); } static inline HRESULT IDvdControl2_PlayChaptersAutoStop(IDvdControl2* This,ULONG title,ULONG chapter,ULONG count,DWORD flags,IDvdCmd **cmd) { return This->lpVtbl->PlayChaptersAutoStop(This,title,chapter,count,flags,cmd); } static inline HRESULT IDvdControl2_AcceptParentalLevelChange(IDvdControl2* This,BOOL accept) { return This->lpVtbl->AcceptParentalLevelChange(This,accept); } static inline HRESULT IDvdControl2_SetOption(IDvdControl2* This,DVD_OPTION_FLAG flag,BOOL option) { return This->lpVtbl->SetOption(This,flag,option); } static inline HRESULT IDvdControl2_SetState(IDvdControl2* This,IDvdState *state,DWORD flags,IDvdCmd **cmd) { return This->lpVtbl->SetState(This,state,flags,cmd); } static inline HRESULT IDvdControl2_PlayPeriodInTitleAutoStop(IDvdControl2* This,ULONG title,DVD_HMSF_TIMECODE *start_time,DVD_HMSF_TIMECODE *end_time,DWORD flags,IDvdCmd **cmd) { return This->lpVtbl->PlayPeriodInTitleAutoStop(This,title,start_time,end_time,flags,cmd); } static inline HRESULT IDvdControl2_SetGRPM(IDvdControl2* This,ULONG index,WORD value,DWORD flags,IDvdCmd **cmd) { return This->lpVtbl->SetGRPM(This,index,value,flags,cmd); } static inline HRESULT IDvdControl2_SelectDefaultMenuLanguage(IDvdControl2* This,LCID language) { return This->lpVtbl->SelectDefaultMenuLanguage(This,language); } static inline HRESULT IDvdControl2_SelectDefaultAudioLanguage(IDvdControl2* This,LCID language,DVD_AUDIO_LANG_EXT extension) { return This->lpVtbl->SelectDefaultAudioLanguage(This,language,extension); } static inline HRESULT IDvdControl2_SelectDefaultSubpictureLanguage(IDvdControl2* This,LCID language,DVD_SUBPICTURE_LANG_EXT extension) { return This->lpVtbl->SelectDefaultSubpictureLanguage(This,language,extension); } #endif #endif #endif #endif /* __IDvdControl2_INTERFACE_DEFINED__ */ /***************************************************************************** * IDvdInfo2 interface */ #ifndef __IDvdInfo2_INTERFACE_DEFINED__ #define __IDvdInfo2_INTERFACE_DEFINED__ DEFINE_GUID(IID_IDvdInfo2, 0x34151510, 0xeec0, 0x11d2, 0x82,0x01, 0x00,0xa0,0xc9,0xd7,0x48,0x42); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("34151510-eec0-11d2-8201-00a0c9d74842") IDvdInfo2 : public IUnknown { virtual HRESULT STDMETHODCALLTYPE GetCurrentDomain( DVD_DOMAIN *domain) = 0; virtual HRESULT STDMETHODCALLTYPE GetCurrentLocation( DVD_PLAYBACK_LOCATION2 *location) = 0; virtual HRESULT STDMETHODCALLTYPE GetTotalTitleTime( DVD_HMSF_TIMECODE *time, ULONG *flags) = 0; virtual HRESULT STDMETHODCALLTYPE GetCurrentButton( ULONG *count, ULONG *current) = 0; virtual HRESULT STDMETHODCALLTYPE GetCurrentAngle( ULONG *count, ULONG *current) = 0; virtual HRESULT STDMETHODCALLTYPE GetCurrentAudio( ULONG *count, ULONG *current) = 0; virtual HRESULT STDMETHODCALLTYPE GetCurrentSubpicture( ULONG *count, ULONG *current, BOOL *enable) = 0; virtual HRESULT STDMETHODCALLTYPE GetCurrentUOPS( ULONG *uops) = 0; virtual HRESULT STDMETHODCALLTYPE GetAllSPRMs( SPRMARRAY *regs) = 0; virtual HRESULT STDMETHODCALLTYPE GetAllGPRMs( GPRMARRAY *regs) = 0; virtual HRESULT STDMETHODCALLTYPE GetAudioLanguage( ULONG stream, LCID *language) = 0; virtual HRESULT STDMETHODCALLTYPE GetSubpictureLanguage( ULONG stream, LCID *language) = 0; virtual HRESULT STDMETHODCALLTYPE GetTitleAttributes( ULONG index, DVD_MenuAttributes *menu, DVD_TitleAttributes *title) = 0; virtual HRESULT STDMETHODCALLTYPE GetVMGAttributes( DVD_MenuAttributes *attr) = 0; virtual HRESULT STDMETHODCALLTYPE GetVideoAttributes( DVD_VideoAttributes *attr) = 0; virtual HRESULT STDMETHODCALLTYPE GetAudioAttributes( ULONG stream, DVD_AudioAttributes *attr) = 0; virtual HRESULT STDMETHODCALLTYPE GetKaraokeAttributes( ULONG stream, DVD_KaraokeAttributes *attr) = 0; virtual HRESULT STDMETHODCALLTYPE GetSubpictureAttributes( ULONG stream, DVD_SubpictureAttributes *attr) = 0; virtual HRESULT STDMETHODCALLTYPE GetCurrentVolumeInfo( ULONG *volume_count, ULONG *current, DVD_DISC_SIDE *side, ULONG *title_count) = 0; virtual HRESULT STDMETHODCALLTYPE GetDVDTextNumberOfLanguages( ULONG *count) = 0; virtual HRESULT STDMETHODCALLTYPE GetDVDTextLanguageInfo( ULONG index, ULONG *string_count, LCID *language, enum DVD_TextCharSet *character_set) = 0; virtual HRESULT STDMETHODCALLTYPE GetDVDTextStringAsNative( ULONG lang_index, ULONG string_index, BYTE *string, ULONG size, ULONG *ret_size, enum DVD_TextStringType *type) = 0; virtual HRESULT STDMETHODCALLTYPE GetDVDTextStringAsUnicode( ULONG lang_index, ULONG string_index, WCHAR *string, ULONG size, ULONG *ret_size, enum DVD_TextStringType *type) = 0; virtual HRESULT STDMETHODCALLTYPE GetPlayerParentalLevel( ULONG *level, BYTE country_code[2]) = 0; virtual HRESULT STDMETHODCALLTYPE GetNumberOfChapters( ULONG title, ULONG *count) = 0; virtual HRESULT STDMETHODCALLTYPE GetTitleParentalLevels( ULONG title, ULONG *levels) = 0; virtual HRESULT STDMETHODCALLTYPE GetDVDDirectory( WCHAR *path, ULONG size, ULONG *ret_size) = 0; virtual HRESULT STDMETHODCALLTYPE IsAudioStreamEnabled( ULONG stream, BOOL *enable) = 0; virtual HRESULT STDMETHODCALLTYPE GetDiscID( const WCHAR *path, ULONGLONG *id) = 0; virtual HRESULT STDMETHODCALLTYPE GetState( IDvdState **state) = 0; virtual HRESULT STDMETHODCALLTYPE GetMenuLanguages( LCID *languages, ULONG count, ULONG *ret_count) = 0; virtual HRESULT STDMETHODCALLTYPE GetButtonAtPosition( POINT point, ULONG *button) = 0; virtual HRESULT STDMETHODCALLTYPE GetCmdFromEvent( LONG_PTR param, IDvdCmd **cmd) = 0; virtual HRESULT STDMETHODCALLTYPE GetDefaultMenuLanguage( LCID *language) = 0; virtual HRESULT STDMETHODCALLTYPE GetDefaultAudioLanguage( LCID *language, DVD_AUDIO_LANG_EXT *extension) = 0; virtual HRESULT STDMETHODCALLTYPE SelectDefaultSubpictureLanguage( LCID *language, DVD_SUBPICTURE_LANG_EXT *extension) = 0; virtual HRESULT STDMETHODCALLTYPE GetDecoderCaps( DVD_DECODER_CAPS *caps) = 0; virtual HRESULT STDMETHODCALLTYPE GetButtonRect( ULONG button, RECT *rect) = 0; virtual HRESULT STDMETHODCALLTYPE IsSubpictureStreamEnabled( ULONG stream, BOOL *enable) = 0; }; #ifdef __CRT_UUID_DECL __CRT_UUID_DECL(IDvdInfo2, 0x34151510, 0xeec0, 0x11d2, 0x82,0x01, 0x00,0xa0,0xc9,0xd7,0x48,0x42) #endif #else typedef struct IDvdInfo2Vtbl { BEGIN_INTERFACE /*** IUnknown methods ***/ HRESULT (STDMETHODCALLTYPE *QueryInterface)( IDvdInfo2 *This, REFIID riid, void **ppvObject); ULONG (STDMETHODCALLTYPE *AddRef)( IDvdInfo2 *This); ULONG (STDMETHODCALLTYPE *Release)( IDvdInfo2 *This); /*** IDvdInfo2 methods ***/ HRESULT (STDMETHODCALLTYPE *GetCurrentDomain)( IDvdInfo2 *This, DVD_DOMAIN *domain); HRESULT (STDMETHODCALLTYPE *GetCurrentLocation)( IDvdInfo2 *This, DVD_PLAYBACK_LOCATION2 *location); HRESULT (STDMETHODCALLTYPE *GetTotalTitleTime)( IDvdInfo2 *This, DVD_HMSF_TIMECODE *time, ULONG *flags); HRESULT (STDMETHODCALLTYPE *GetCurrentButton)( IDvdInfo2 *This, ULONG *count, ULONG *current); HRESULT (STDMETHODCALLTYPE *GetCurrentAngle)( IDvdInfo2 *This, ULONG *count, ULONG *current); HRESULT (STDMETHODCALLTYPE *GetCurrentAudio)( IDvdInfo2 *This, ULONG *count, ULONG *current); HRESULT (STDMETHODCALLTYPE *GetCurrentSubpicture)( IDvdInfo2 *This, ULONG *count, ULONG *current, BOOL *enable); HRESULT (STDMETHODCALLTYPE *GetCurrentUOPS)( IDvdInfo2 *This, ULONG *uops); HRESULT (STDMETHODCALLTYPE *GetAllSPRMs)( IDvdInfo2 *This, SPRMARRAY *regs); HRESULT (STDMETHODCALLTYPE *GetAllGPRMs)( IDvdInfo2 *This, GPRMARRAY *regs); HRESULT (STDMETHODCALLTYPE *GetAudioLanguage)( IDvdInfo2 *This, ULONG stream, LCID *language); HRESULT (STDMETHODCALLTYPE *GetSubpictureLanguage)( IDvdInfo2 *This, ULONG stream, LCID *language); HRESULT (STDMETHODCALLTYPE *GetTitleAttributes)( IDvdInfo2 *This, ULONG index, DVD_MenuAttributes *menu, DVD_TitleAttributes *title); HRESULT (STDMETHODCALLTYPE *GetVMGAttributes)( IDvdInfo2 *This, DVD_MenuAttributes *attr); HRESULT (STDMETHODCALLTYPE *GetVideoAttributes)( IDvdInfo2 *This, DVD_VideoAttributes *attr); HRESULT (STDMETHODCALLTYPE *GetAudioAttributes)( IDvdInfo2 *This, ULONG stream, DVD_AudioAttributes *attr); HRESULT (STDMETHODCALLTYPE *GetKaraokeAttributes)( IDvdInfo2 *This, ULONG stream, DVD_KaraokeAttributes *attr); HRESULT (STDMETHODCALLTYPE *GetSubpictureAttributes)( IDvdInfo2 *This, ULONG stream, DVD_SubpictureAttributes *attr); HRESULT (STDMETHODCALLTYPE *GetCurrentVolumeInfo)( IDvdInfo2 *This, ULONG *volume_count, ULONG *current, DVD_DISC_SIDE *side, ULONG *title_count); HRESULT (STDMETHODCALLTYPE *GetDVDTextNumberOfLanguages)( IDvdInfo2 *This, ULONG *count); HRESULT (STDMETHODCALLTYPE *GetDVDTextLanguageInfo)( IDvdInfo2 *This, ULONG index, ULONG *string_count, LCID *language, enum DVD_TextCharSet *character_set); HRESULT (STDMETHODCALLTYPE *GetDVDTextStringAsNative)( IDvdInfo2 *This, ULONG lang_index, ULONG string_index, BYTE *string, ULONG size, ULONG *ret_size, enum DVD_TextStringType *type); HRESULT (STDMETHODCALLTYPE *GetDVDTextStringAsUnicode)( IDvdInfo2 *This, ULONG lang_index, ULONG string_index, WCHAR *string, ULONG size, ULONG *ret_size, enum DVD_TextStringType *type); HRESULT (STDMETHODCALLTYPE *GetPlayerParentalLevel)( IDvdInfo2 *This, ULONG *level, BYTE country_code[2]); HRESULT (STDMETHODCALLTYPE *GetNumberOfChapters)( IDvdInfo2 *This, ULONG title, ULONG *count); HRESULT (STDMETHODCALLTYPE *GetTitleParentalLevels)( IDvdInfo2 *This, ULONG title, ULONG *levels); HRESULT (STDMETHODCALLTYPE *GetDVDDirectory)( IDvdInfo2 *This, WCHAR *path, ULONG size, ULONG *ret_size); HRESULT (STDMETHODCALLTYPE *IsAudioStreamEnabled)( IDvdInfo2 *This, ULONG stream, BOOL *enable); HRESULT (STDMETHODCALLTYPE *GetDiscID)( IDvdInfo2 *This, const WCHAR *path, ULONGLONG *id); HRESULT (STDMETHODCALLTYPE *GetState)( IDvdInfo2 *This, IDvdState **state); HRESULT (STDMETHODCALLTYPE *GetMenuLanguages)( IDvdInfo2 *This, LCID *languages, ULONG count, ULONG *ret_count); HRESULT (STDMETHODCALLTYPE *GetButtonAtPosition)( IDvdInfo2 *This, POINT point, ULONG *button); HRESULT (STDMETHODCALLTYPE *GetCmdFromEvent)( IDvdInfo2 *This, LONG_PTR param, IDvdCmd **cmd); HRESULT (STDMETHODCALLTYPE *GetDefaultMenuLanguage)( IDvdInfo2 *This, LCID *language); HRESULT (STDMETHODCALLTYPE *GetDefaultAudioLanguage)( IDvdInfo2 *This, LCID *language, DVD_AUDIO_LANG_EXT *extension); HRESULT (STDMETHODCALLTYPE *SelectDefaultSubpictureLanguage)( IDvdInfo2 *This, LCID *language, DVD_SUBPICTURE_LANG_EXT *extension); HRESULT (STDMETHODCALLTYPE *GetDecoderCaps)( IDvdInfo2 *This, DVD_DECODER_CAPS *caps); HRESULT (STDMETHODCALLTYPE *GetButtonRect)( IDvdInfo2 *This, ULONG button, RECT *rect); HRESULT (STDMETHODCALLTYPE *IsSubpictureStreamEnabled)( IDvdInfo2 *This, ULONG stream, BOOL *enable); END_INTERFACE } IDvdInfo2Vtbl; interface IDvdInfo2 { CONST_VTBL IDvdInfo2Vtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ #define IDvdInfo2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IDvdInfo2_AddRef(This) (This)->lpVtbl->AddRef(This) #define IDvdInfo2_Release(This) (This)->lpVtbl->Release(This) /*** IDvdInfo2 methods ***/ #define IDvdInfo2_GetCurrentDomain(This,domain) (This)->lpVtbl->GetCurrentDomain(This,domain) #define IDvdInfo2_GetCurrentLocation(This,location) (This)->lpVtbl->GetCurrentLocation(This,location) #define IDvdInfo2_GetTotalTitleTime(This,time,flags) (This)->lpVtbl->GetTotalTitleTime(This,time,flags) #define IDvdInfo2_GetCurrentButton(This,count,current) (This)->lpVtbl->GetCurrentButton(This,count,current) #define IDvdInfo2_GetCurrentAngle(This,count,current) (This)->lpVtbl->GetCurrentAngle(This,count,current) #define IDvdInfo2_GetCurrentAudio(This,count,current) (This)->lpVtbl->GetCurrentAudio(This,count,current) #define IDvdInfo2_GetCurrentSubpicture(This,count,current,enable) (This)->lpVtbl->GetCurrentSubpicture(This,count,current,enable) #define IDvdInfo2_GetCurrentUOPS(This,uops) (This)->lpVtbl->GetCurrentUOPS(This,uops) #define IDvdInfo2_GetAllSPRMs(This,regs) (This)->lpVtbl->GetAllSPRMs(This,regs) #define IDvdInfo2_GetAllGPRMs(This,regs) (This)->lpVtbl->GetAllGPRMs(This,regs) #define IDvdInfo2_GetAudioLanguage(This,stream,language) (This)->lpVtbl->GetAudioLanguage(This,stream,language) #define IDvdInfo2_GetSubpictureLanguage(This,stream,language) (This)->lpVtbl->GetSubpictureLanguage(This,stream,language) #define IDvdInfo2_GetTitleAttributes(This,index,menu,title) (This)->lpVtbl->GetTitleAttributes(This,index,menu,title) #define IDvdInfo2_GetVMGAttributes(This,attr) (This)->lpVtbl->GetVMGAttributes(This,attr) #define IDvdInfo2_GetVideoAttributes(This,attr) (This)->lpVtbl->GetVideoAttributes(This,attr) #define IDvdInfo2_GetAudioAttributes(This,stream,attr) (This)->lpVtbl->GetAudioAttributes(This,stream,attr) #define IDvdInfo2_GetKaraokeAttributes(This,stream,attr) (This)->lpVtbl->GetKaraokeAttributes(This,stream,attr) #define IDvdInfo2_GetSubpictureAttributes(This,stream,attr) (This)->lpVtbl->GetSubpictureAttributes(This,stream,attr) #define IDvdInfo2_GetCurrentVolumeInfo(This,volume_count,current,side,title_count) (This)->lpVtbl->GetCurrentVolumeInfo(This,volume_count,current,side,title_count) #define IDvdInfo2_GetDVDTextNumberOfLanguages(This,count) (This)->lpVtbl->GetDVDTextNumberOfLanguages(This,count) #define IDvdInfo2_GetDVDTextLanguageInfo(This,index,string_count,language,character_set) (This)->lpVtbl->GetDVDTextLanguageInfo(This,index,string_count,language,character_set) #define IDvdInfo2_GetDVDTextStringAsNative(This,lang_index,string_index,string,size,ret_size,type) (This)->lpVtbl->GetDVDTextStringAsNative(This,lang_index,string_index,string,size,ret_size,type) #define IDvdInfo2_GetDVDTextStringAsUnicode(This,lang_index,string_index,string,size,ret_size,type) (This)->lpVtbl->GetDVDTextStringAsUnicode(This,lang_index,string_index,string,size,ret_size,type) #define IDvdInfo2_GetPlayerParentalLevel(This,level,country_code) (This)->lpVtbl->GetPlayerParentalLevel(This,level,country_code) #define IDvdInfo2_GetNumberOfChapters(This,title,count) (This)->lpVtbl->GetNumberOfChapters(This,title,count) #define IDvdInfo2_GetTitleParentalLevels(This,title,levels) (This)->lpVtbl->GetTitleParentalLevels(This,title,levels) #define IDvdInfo2_GetDVDDirectory(This,path,size,ret_size) (This)->lpVtbl->GetDVDDirectory(This,path,size,ret_size) #define IDvdInfo2_IsAudioStreamEnabled(This,stream,enable) (This)->lpVtbl->IsAudioStreamEnabled(This,stream,enable) #define IDvdInfo2_GetDiscID(This,path,id) (This)->lpVtbl->GetDiscID(This,path,id) #define IDvdInfo2_GetState(This,state) (This)->lpVtbl->GetState(This,state) #define IDvdInfo2_GetMenuLanguages(This,languages,count,ret_count) (This)->lpVtbl->GetMenuLanguages(This,languages,count,ret_count) #define IDvdInfo2_GetButtonAtPosition(This,point,button) (This)->lpVtbl->GetButtonAtPosition(This,point,button) #define IDvdInfo2_GetCmdFromEvent(This,param,cmd) (This)->lpVtbl->GetCmdFromEvent(This,param,cmd) #define IDvdInfo2_GetDefaultMenuLanguage(This,language) (This)->lpVtbl->GetDefaultMenuLanguage(This,language) #define IDvdInfo2_GetDefaultAudioLanguage(This,language,extension) (This)->lpVtbl->GetDefaultAudioLanguage(This,language,extension) #define IDvdInfo2_SelectDefaultSubpictureLanguage(This,language,extension) (This)->lpVtbl->SelectDefaultSubpictureLanguage(This,language,extension) #define IDvdInfo2_GetDecoderCaps(This,caps) (This)->lpVtbl->GetDecoderCaps(This,caps) #define IDvdInfo2_GetButtonRect(This,button,rect) (This)->lpVtbl->GetButtonRect(This,button,rect) #define IDvdInfo2_IsSubpictureStreamEnabled(This,stream,enable) (This)->lpVtbl->IsSubpictureStreamEnabled(This,stream,enable) #else /*** IUnknown methods ***/ static inline HRESULT IDvdInfo2_QueryInterface(IDvdInfo2* This,REFIID riid,void **ppvObject) { return This->lpVtbl->QueryInterface(This,riid,ppvObject); } static inline ULONG IDvdInfo2_AddRef(IDvdInfo2* This) { return This->lpVtbl->AddRef(This); } static inline ULONG IDvdInfo2_Release(IDvdInfo2* This) { return This->lpVtbl->Release(This); } /*** IDvdInfo2 methods ***/ static inline HRESULT IDvdInfo2_GetCurrentDomain(IDvdInfo2* This,DVD_DOMAIN *domain) { return This->lpVtbl->GetCurrentDomain(This,domain); } static inline HRESULT IDvdInfo2_GetCurrentLocation(IDvdInfo2* This,DVD_PLAYBACK_LOCATION2 *location) { return This->lpVtbl->GetCurrentLocation(This,location); } static inline HRESULT IDvdInfo2_GetTotalTitleTime(IDvdInfo2* This,DVD_HMSF_TIMECODE *time,ULONG *flags) { return This->lpVtbl->GetTotalTitleTime(This,time,flags); } static inline HRESULT IDvdInfo2_GetCurrentButton(IDvdInfo2* This,ULONG *count,ULONG *current) { return This->lpVtbl->GetCurrentButton(This,count,current); } static inline HRESULT IDvdInfo2_GetCurrentAngle(IDvdInfo2* This,ULONG *count,ULONG *current) { return This->lpVtbl->GetCurrentAngle(This,count,current); } static inline HRESULT IDvdInfo2_GetCurrentAudio(IDvdInfo2* This,ULONG *count,ULONG *current) { return This->lpVtbl->GetCurrentAudio(This,count,current); } static inline HRESULT IDvdInfo2_GetCurrentSubpicture(IDvdInfo2* This,ULONG *count,ULONG *current,BOOL *enable) { return This->lpVtbl->GetCurrentSubpicture(This,count,current,enable); } static inline HRESULT IDvdInfo2_GetCurrentUOPS(IDvdInfo2* This,ULONG *uops) { return This->lpVtbl->GetCurrentUOPS(This,uops); } static inline HRESULT IDvdInfo2_GetAllSPRMs(IDvdInfo2* This,SPRMARRAY *regs) { return This->lpVtbl->GetAllSPRMs(This,regs); } static inline HRESULT IDvdInfo2_GetAllGPRMs(IDvdInfo2* This,GPRMARRAY *regs) { return This->lpVtbl->GetAllGPRMs(This,regs); } static inline HRESULT IDvdInfo2_GetAudioLanguage(IDvdInfo2* This,ULONG stream,LCID *language) { return This->lpVtbl->GetAudioLanguage(This,stream,language); } static inline HRESULT IDvdInfo2_GetSubpictureLanguage(IDvdInfo2* This,ULONG stream,LCID *language) { return This->lpVtbl->GetSubpictureLanguage(This,stream,language); } static inline HRESULT IDvdInfo2_GetTitleAttributes(IDvdInfo2* This,ULONG index,DVD_MenuAttributes *menu,DVD_TitleAttributes *title) { return This->lpVtbl->GetTitleAttributes(This,index,menu,title); } static inline HRESULT IDvdInfo2_GetVMGAttributes(IDvdInfo2* This,DVD_MenuAttributes *attr) { return This->lpVtbl->GetVMGAttributes(This,attr); } static inline HRESULT IDvdInfo2_GetVideoAttributes(IDvdInfo2* This,DVD_VideoAttributes *attr) { return This->lpVtbl->GetVideoAttributes(This,attr); } static inline HRESULT IDvdInfo2_GetAudioAttributes(IDvdInfo2* This,ULONG stream,DVD_AudioAttributes *attr) { return This->lpVtbl->GetAudioAttributes(This,stream,attr); } static inline HRESULT IDvdInfo2_GetKaraokeAttributes(IDvdInfo2* This,ULONG stream,DVD_KaraokeAttributes *attr) { return This->lpVtbl->GetKaraokeAttributes(This,stream,attr); } static inline HRESULT IDvdInfo2_GetSubpictureAttributes(IDvdInfo2* This,ULONG stream,DVD_SubpictureAttributes *attr) { return This->lpVtbl->GetSubpictureAttributes(This,stream,attr); } static inline HRESULT IDvdInfo2_GetCurrentVolumeInfo(IDvdInfo2* This,ULONG *volume_count,ULONG *current,DVD_DISC_SIDE *side,ULONG *title_count) { return This->lpVtbl->GetCurrentVolumeInfo(This,volume_count,current,side,title_count); } static inline HRESULT IDvdInfo2_GetDVDTextNumberOfLanguages(IDvdInfo2* This,ULONG *count) { return This->lpVtbl->GetDVDTextNumberOfLanguages(This,count); } static inline HRESULT IDvdInfo2_GetDVDTextLanguageInfo(IDvdInfo2* This,ULONG index,ULONG *string_count,LCID *language,enum DVD_TextCharSet *character_set) { return This->lpVtbl->GetDVDTextLanguageInfo(This,index,string_count,language,character_set); } static inline HRESULT IDvdInfo2_GetDVDTextStringAsNative(IDvdInfo2* This,ULONG lang_index,ULONG string_index,BYTE *string,ULONG size,ULONG *ret_size,enum DVD_TextStringType *type) { return This->lpVtbl->GetDVDTextStringAsNative(This,lang_index,string_index,string,size,ret_size,type); } static inline HRESULT IDvdInfo2_GetDVDTextStringAsUnicode(IDvdInfo2* This,ULONG lang_index,ULONG string_index,WCHAR *string,ULONG size,ULONG *ret_size,enum DVD_TextStringType *type) { return This->lpVtbl->GetDVDTextStringAsUnicode(This,lang_index,string_index,string,size,ret_size,type); } static inline HRESULT IDvdInfo2_GetPlayerParentalLevel(IDvdInfo2* This,ULONG *level,BYTE country_code[2]) { return This->lpVtbl->GetPlayerParentalLevel(This,level,country_code); } static inline HRESULT IDvdInfo2_GetNumberOfChapters(IDvdInfo2* This,ULONG title,ULONG *count) { return This->lpVtbl->GetNumberOfChapters(This,title,count); } static inline HRESULT IDvdInfo2_GetTitleParentalLevels(IDvdInfo2* This,ULONG title,ULONG *levels) { return This->lpVtbl->GetTitleParentalLevels(This,title,levels); } static inline HRESULT IDvdInfo2_GetDVDDirectory(IDvdInfo2* This,WCHAR *path,ULONG size,ULONG *ret_size) { return This->lpVtbl->GetDVDDirectory(This,path,size,ret_size); } static inline HRESULT IDvdInfo2_IsAudioStreamEnabled(IDvdInfo2* This,ULONG stream,BOOL *enable) { return This->lpVtbl->IsAudioStreamEnabled(This,stream,enable); } static inline HRESULT IDvdInfo2_GetDiscID(IDvdInfo2* This,const WCHAR *path,ULONGLONG *id) { return This->lpVtbl->GetDiscID(This,path,id); } static inline HRESULT IDvdInfo2_GetState(IDvdInfo2* This,IDvdState **state) { return This->lpVtbl->GetState(This,state); } static inline HRESULT IDvdInfo2_GetMenuLanguages(IDvdInfo2* This,LCID *languages,ULONG count,ULONG *ret_count) { return This->lpVtbl->GetMenuLanguages(This,languages,count,ret_count); } static inline HRESULT IDvdInfo2_GetButtonAtPosition(IDvdInfo2* This,POINT point,ULONG *button) { return This->lpVtbl->GetButtonAtPosition(This,point,button); } static inline HRESULT IDvdInfo2_GetCmdFromEvent(IDvdInfo2* This,LONG_PTR param,IDvdCmd **cmd) { return This->lpVtbl->GetCmdFromEvent(This,param,cmd); } static inline HRESULT IDvdInfo2_GetDefaultMenuLanguage(IDvdInfo2* This,LCID *language) { return This->lpVtbl->GetDefaultMenuLanguage(This,language); } static inline HRESULT IDvdInfo2_GetDefaultAudioLanguage(IDvdInfo2* This,LCID *language,DVD_AUDIO_LANG_EXT *extension) { return This->lpVtbl->GetDefaultAudioLanguage(This,language,extension); } static inline HRESULT IDvdInfo2_SelectDefaultSubpictureLanguage(IDvdInfo2* This,LCID *language,DVD_SUBPICTURE_LANG_EXT *extension) { return This->lpVtbl->SelectDefaultSubpictureLanguage(This,language,extension); } static inline HRESULT IDvdInfo2_GetDecoderCaps(IDvdInfo2* This,DVD_DECODER_CAPS *caps) { return This->lpVtbl->GetDecoderCaps(This,caps); } static inline HRESULT IDvdInfo2_GetButtonRect(IDvdInfo2* This,ULONG button,RECT *rect) { return This->lpVtbl->GetButtonRect(This,button,rect); } static inline HRESULT IDvdInfo2_IsSubpictureStreamEnabled(IDvdInfo2* This,ULONG stream,BOOL *enable) { return This->lpVtbl->IsSubpictureStreamEnabled(This,stream,enable); } #endif #endif #endif #endif /* __IDvdInfo2_INTERFACE_DEFINED__ */ /***************************************************************************** * IDvdGraphBuilder interface */ #ifndef __IDvdGraphBuilder_INTERFACE_DEFINED__ #define __IDvdGraphBuilder_INTERFACE_DEFINED__ DEFINE_GUID(IID_IDvdGraphBuilder, 0xfcc152b6, 0xf372, 0x11d0, 0x8e,0x00, 0x00,0xc0,0x4f,0xd7,0xc0,0x8b); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("fcc152b6-f372-11d0-8e00-00c04fd7c08b") IDvdGraphBuilder : public IUnknown { virtual HRESULT STDMETHODCALLTYPE GetFiltergraph( IGraphBuilder **graph) = 0; virtual HRESULT STDMETHODCALLTYPE GetDvdInterface( REFIID iid, void **out) = 0; virtual HRESULT STDMETHODCALLTYPE RenderDvdVideoVolume( const WCHAR *path, DWORD flags, AM_DVD_RENDERSTATUS *status) = 0; }; #ifdef __CRT_UUID_DECL __CRT_UUID_DECL(IDvdGraphBuilder, 0xfcc152b6, 0xf372, 0x11d0, 0x8e,0x00, 0x00,0xc0,0x4f,0xd7,0xc0,0x8b) #endif #else typedef struct IDvdGraphBuilderVtbl { BEGIN_INTERFACE /*** IUnknown methods ***/ HRESULT (STDMETHODCALLTYPE *QueryInterface)( IDvdGraphBuilder *This, REFIID riid, void **ppvObject); ULONG (STDMETHODCALLTYPE *AddRef)( IDvdGraphBuilder *This); ULONG (STDMETHODCALLTYPE *Release)( IDvdGraphBuilder *This); /*** IDvdGraphBuilder methods ***/ HRESULT (STDMETHODCALLTYPE *GetFiltergraph)( IDvdGraphBuilder *This, IGraphBuilder **graph); HRESULT (STDMETHODCALLTYPE *GetDvdInterface)( IDvdGraphBuilder *This, REFIID iid, void **out); HRESULT (STDMETHODCALLTYPE *RenderDvdVideoVolume)( IDvdGraphBuilder *This, const WCHAR *path, DWORD flags, AM_DVD_RENDERSTATUS *status); END_INTERFACE } IDvdGraphBuilderVtbl; interface IDvdGraphBuilder { CONST_VTBL IDvdGraphBuilderVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ #define IDvdGraphBuilder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IDvdGraphBuilder_AddRef(This) (This)->lpVtbl->AddRef(This) #define IDvdGraphBuilder_Release(This) (This)->lpVtbl->Release(This) /*** IDvdGraphBuilder methods ***/ #define IDvdGraphBuilder_GetFiltergraph(This,graph) (This)->lpVtbl->GetFiltergraph(This,graph) #define IDvdGraphBuilder_GetDvdInterface(This,iid,out) (This)->lpVtbl->GetDvdInterface(This,iid,out) #define IDvdGraphBuilder_RenderDvdVideoVolume(This,path,flags,status) (This)->lpVtbl->RenderDvdVideoVolume(This,path,flags,status) #else /*** IUnknown methods ***/ static inline HRESULT IDvdGraphBuilder_QueryInterface(IDvdGraphBuilder* This,REFIID riid,void **ppvObject) { return This->lpVtbl->QueryInterface(This,riid,ppvObject); } static inline ULONG IDvdGraphBuilder_AddRef(IDvdGraphBuilder* This) { return This->lpVtbl->AddRef(This); } static inline ULONG IDvdGraphBuilder_Release(IDvdGraphBuilder* This) { return This->lpVtbl->Release(This); } /*** IDvdGraphBuilder methods ***/ static inline HRESULT IDvdGraphBuilder_GetFiltergraph(IDvdGraphBuilder* This,IGraphBuilder **graph) { return This->lpVtbl->GetFiltergraph(This,graph); } static inline HRESULT IDvdGraphBuilder_GetDvdInterface(IDvdGraphBuilder* This,REFIID iid,void **out) { return This->lpVtbl->GetDvdInterface(This,iid,out); } static inline HRESULT IDvdGraphBuilder_RenderDvdVideoVolume(IDvdGraphBuilder* This,const WCHAR *path,DWORD flags,AM_DVD_RENDERSTATUS *status) { return This->lpVtbl->RenderDvdVideoVolume(This,path,flags,status); } #endif #endif #endif #endif /* __IDvdGraphBuilder_INTERFACE_DEFINED__ */ /* Begin additional prototypes for all interfaces */ /* End additional prototypes */ #ifdef __cplusplus } #endif #endif /* __strmif_h__ */