blob: 4f172d31fb67781d6865636635472bf9eb744280 [file] [log] [blame]
/*** Autogenerated by WIDL 6.3 from include/strmif.idl - Do not edit ***/
#ifdef _WIN32
#ifndef __REQUIRED_RPCNDR_H_VERSION__
#define __REQUIRED_RPCNDR_H_VERSION__ 475
#endif
#include <rpc.h>
#include <rpcndr.h>
#endif
#ifndef COM_NO_WINDOWS_H
#include <windows.h>
#include <ole2.h>
#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 __IReferenceClockTimerControl_FWD_DEFINED__
#define __IReferenceClockTimerControl_FWD_DEFINED__
typedef interface IReferenceClockTimerControl IReferenceClockTimerControl;
#ifdef __cplusplus
interface IReferenceClockTimerControl;
#endif /* __cplusplus */
#endif
#ifndef __IReferenceClock2_FWD_DEFINED__
#define __IReferenceClock2_FWD_DEFINED__
typedef interface IReferenceClock2 IReferenceClock2;
#ifdef __cplusplus
interface IReferenceClock2;
#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 __IMediaSample2Config_FWD_DEFINED__
#define __IMediaSample2Config_FWD_DEFINED__
typedef interface IMediaSample2Config IMediaSample2Config;
#ifdef __cplusplus
interface IMediaSample2Config;
#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 __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 __IAMAsyncReaderTimestampScaling_FWD_DEFINED__
#define __IAMAsyncReaderTimestampScaling_FWD_DEFINED__
typedef interface IAMAsyncReaderTimestampScaling IAMAsyncReaderTimestampScaling;
#ifdef __cplusplus
interface IAMAsyncReaderTimestampScaling;
#endif /* __cplusplus */
#endif
#ifndef __IAMPluginControl_FWD_DEFINED__
#define __IAMPluginControl_FWD_DEFINED__
typedef interface IAMPluginControl IAMPluginControl;
#ifdef __cplusplus
interface IAMPluginControl;
#endif /* __cplusplus */
#endif
/* Headers for imported files */
#include <unknwn.h>
#include <objidl.h>
#include <oaidl.h>
#ifdef __cplusplus
extern "C" {
#endif
/**
* This file is part of the mingw-w64 runtime package.
* No warranty is given; refer to the file DISCLAIMER within this package.
*/
#include <winapifamily.h>
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
#define CDEF_CLASS_DEFAULT 0x1
#define CDEF_BYPASS_CLASS_MANAGER 0x2
#define CDEF_MERIT_ABOVE_DO_NOT_USE 0x8
#define CDEF_DEVMON_CMGR_DEVICE 0x10
#define CDEF_DEVMON_DMO 0x20
#define CDEF_DEVMON_PNP_DEVICE 0x40
#define CDEF_DEVMON_FILTER 0x80
#define CDEF_DEVMON_SELECTIVE_MASK 0xf0
/*****************************************************************************
* 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 FORCEINLINE HRESULT ICreateDevEnum_QueryInterface(ICreateDevEnum* This,REFIID riid,void **ppvObject) {
return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG ICreateDevEnum_AddRef(ICreateDevEnum* This) {
return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG ICreateDevEnum_Release(ICreateDevEnum* This) {
return This->lpVtbl->Release(This);
}
/*** ICreateDevEnum methods ***/
static FORCEINLINE 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__ */
#endif
/**
* This file is part of the mingw-w64 runtime package.
* No warranty is given; refer to the file DISCLAIMER within this package.
*/
#include <winapifamily.h>
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
#define CHARS_IN_GUID 39
#ifdef WINE_NO_UNICODE_MACROS
#undef GetTimeFormat
#endif
typedef struct _AMMediaType {
GUID majortype;
GUID subtype;
WINBOOL bFixedSizeSamples;
WINBOOL bTemporalCompression;
ULONG lSampleSize;
GUID formattype;
IUnknown *pUnk;
ULONG cbFormat;
BYTE *pbFormat;
} AM_MEDIA_TYPE;
typedef enum _PinDirection {
PINDIR_INPUT = 0,
PINDIR_OUTPUT = 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 FORCEINLINE HRESULT IPin_QueryInterface(IPin* This,REFIID riid,void **ppvObject) {
return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG IPin_AddRef(IPin* This) {
return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG IPin_Release(IPin* This) {
return This->lpVtbl->Release(This);
}
/*** IPin methods ***/
static FORCEINLINE HRESULT IPin_Connect(IPin* This,IPin *pReceivePin,const AM_MEDIA_TYPE *pmt) {
return This->lpVtbl->Connect(This,pReceivePin,pmt);
}
static FORCEINLINE HRESULT IPin_ReceiveConnection(IPin* This,IPin *pConnector,const AM_MEDIA_TYPE *pmt) {
return This->lpVtbl->ReceiveConnection(This,pConnector,pmt);
}
static FORCEINLINE HRESULT IPin_Disconnect(IPin* This) {
return This->lpVtbl->Disconnect(This);
}
static FORCEINLINE HRESULT IPin_ConnectedTo(IPin* This,IPin **pPin) {
return This->lpVtbl->ConnectedTo(This,pPin);
}
static FORCEINLINE HRESULT IPin_ConnectionMediaType(IPin* This,AM_MEDIA_TYPE *pmt) {
return This->lpVtbl->ConnectionMediaType(This,pmt);
}
static FORCEINLINE HRESULT IPin_QueryPinInfo(IPin* This,PIN_INFO *pInfo) {
return This->lpVtbl->QueryPinInfo(This,pInfo);
}
static FORCEINLINE HRESULT IPin_QueryDirection(IPin* This,PIN_DIRECTION *pPinDir) {
return This->lpVtbl->QueryDirection(This,pPinDir);
}
static FORCEINLINE HRESULT IPin_QueryId(IPin* This,LPWSTR *Id) {
return This->lpVtbl->QueryId(This,Id);
}
static FORCEINLINE HRESULT IPin_QueryAccept(IPin* This,const AM_MEDIA_TYPE *pmt) {
return This->lpVtbl->QueryAccept(This,pmt);
}
static FORCEINLINE HRESULT IPin_EnumMediaTypes(IPin* This,IEnumMediaTypes **ppEnum) {
return This->lpVtbl->EnumMediaTypes(This,ppEnum);
}
static FORCEINLINE HRESULT IPin_QueryInternalConnections(IPin* This,IPin **apPin,ULONG *nPin) {
return This->lpVtbl->QueryInternalConnections(This,apPin,nPin);
}
static FORCEINLINE HRESULT IPin_EndOfStream(IPin* This) {
return This->lpVtbl->EndOfStream(This);
}
static FORCEINLINE HRESULT IPin_BeginFlush(IPin* This) {
return This->lpVtbl->BeginFlush(This);
}
static FORCEINLINE HRESULT IPin_EndFlush(IPin* This) {
return This->lpVtbl->EndFlush(This);
}
static FORCEINLINE 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 FORCEINLINE HRESULT IEnumPins_QueryInterface(IEnumPins* This,REFIID riid,void **ppvObject) {
return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG IEnumPins_AddRef(IEnumPins* This) {
return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG IEnumPins_Release(IEnumPins* This) {
return This->lpVtbl->Release(This);
}
/*** IEnumPins methods ***/
static FORCEINLINE HRESULT IEnumPins_Next(IEnumPins* This,ULONG cPins,IPin **ppPins,ULONG *pcFetched) {
return This->lpVtbl->Next(This,cPins,ppPins,pcFetched);
}
static FORCEINLINE HRESULT IEnumPins_Skip(IEnumPins* This,ULONG cPins) {
return This->lpVtbl->Skip(This,cPins);
}
static FORCEINLINE HRESULT IEnumPins_Reset(IEnumPins* This) {
return This->lpVtbl->Reset(This);
}
static FORCEINLINE 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 FORCEINLINE HRESULT IEnumMediaTypes_QueryInterface(IEnumMediaTypes* This,REFIID riid,void **ppvObject) {
return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG IEnumMediaTypes_AddRef(IEnumMediaTypes* This) {
return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG IEnumMediaTypes_Release(IEnumMediaTypes* This) {
return This->lpVtbl->Release(This);
}
/*** IEnumMediaTypes methods ***/
static FORCEINLINE HRESULT IEnumMediaTypes_Next(IEnumMediaTypes* This,ULONG cMediaTypes,AM_MEDIA_TYPE **ppMediaTypes,ULONG *pcFetched) {
return This->lpVtbl->Next(This,cMediaTypes,ppMediaTypes,pcFetched);
}
static FORCEINLINE HRESULT IEnumMediaTypes_Skip(IEnumMediaTypes* This,ULONG cMediaTypes) {
return This->lpVtbl->Skip(This,cMediaTypes);
}
static FORCEINLINE HRESULT IEnumMediaTypes_Reset(IEnumMediaTypes* This) {
return This->lpVtbl->Reset(This);
}
static FORCEINLINE 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 FORCEINLINE HRESULT IFilterGraph_QueryInterface(IFilterGraph* This,REFIID riid,void **ppvObject) {
return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG IFilterGraph_AddRef(IFilterGraph* This) {
return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG IFilterGraph_Release(IFilterGraph* This) {
return This->lpVtbl->Release(This);
}
/*** IFilterGraph methods ***/
static FORCEINLINE HRESULT IFilterGraph_AddFilter(IFilterGraph* This,IBaseFilter *pFilter,LPCWSTR pName) {
return This->lpVtbl->AddFilter(This,pFilter,pName);
}
static FORCEINLINE HRESULT IFilterGraph_RemoveFilter(IFilterGraph* This,IBaseFilter *pFilter) {
return This->lpVtbl->RemoveFilter(This,pFilter);
}
static FORCEINLINE HRESULT IFilterGraph_EnumFilters(IFilterGraph* This,IEnumFilters **ppEnum) {
return This->lpVtbl->EnumFilters(This,ppEnum);
}
static FORCEINLINE HRESULT IFilterGraph_FindFilterByName(IFilterGraph* This,LPCWSTR pName,IBaseFilter **ppFilter) {
return This->lpVtbl->FindFilterByName(This,pName,ppFilter);
}
static FORCEINLINE HRESULT IFilterGraph_ConnectDirect(IFilterGraph* This,IPin *ppinOut,IPin *ppinIn,const AM_MEDIA_TYPE *pmt) {
return This->lpVtbl->ConnectDirect(This,ppinOut,ppinIn,pmt);
}
static FORCEINLINE HRESULT IFilterGraph_Reconnect(IFilterGraph* This,IPin *ppin) {
return This->lpVtbl->Reconnect(This,ppin);
}
static FORCEINLINE HRESULT IFilterGraph_Disconnect(IFilterGraph* This,IPin *ppin) {
return This->lpVtbl->Disconnect(This,ppin);
}
static FORCEINLINE 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 FORCEINLINE HRESULT IEnumFilters_QueryInterface(IEnumFilters* This,REFIID riid,void **ppvObject) {
return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG IEnumFilters_AddRef(IEnumFilters* This) {
return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG IEnumFilters_Release(IEnumFilters* This) {
return This->lpVtbl->Release(This);
}
/*** IEnumFilters methods ***/
static FORCEINLINE HRESULT IEnumFilters_Next(IEnumFilters* This,ULONG cFilters,IBaseFilter **ppFilter,ULONG *pcFetched) {
return This->lpVtbl->Next(This,cFilters,ppFilter,pcFetched);
}
static FORCEINLINE HRESULT IEnumFilters_Skip(IEnumFilters* This,ULONG cFilters) {
return This->lpVtbl->Skip(This,cFilters);
}
static FORCEINLINE HRESULT IEnumFilters_Reset(IEnumFilters* This) {
return This->lpVtbl->Reset(This);
}
static FORCEINLINE 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 FORCEINLINE HRESULT IMediaFilter_QueryInterface(IMediaFilter* This,REFIID riid,void **ppvObject) {
return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG IMediaFilter_AddRef(IMediaFilter* This) {
return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG IMediaFilter_Release(IMediaFilter* This) {
return This->lpVtbl->Release(This);
}
/*** IPersist methods ***/
static FORCEINLINE HRESULT IMediaFilter_GetClassID(IMediaFilter* This,CLSID *pClassID) {
return This->lpVtbl->GetClassID(This,pClassID);
}
/*** IMediaFilter methods ***/
static FORCEINLINE HRESULT IMediaFilter_Stop(IMediaFilter* This) {
return This->lpVtbl->Stop(This);
}
static FORCEINLINE HRESULT IMediaFilter_Pause(IMediaFilter* This) {
return This->lpVtbl->Pause(This);
}
static FORCEINLINE HRESULT IMediaFilter_Run(IMediaFilter* This,REFERENCE_TIME tStart) {
return This->lpVtbl->Run(This,tStart);
}
static FORCEINLINE HRESULT IMediaFilter_GetState(IMediaFilter* This,DWORD dwMilliSecsTimeout,FILTER_STATE *State) {
return This->lpVtbl->GetState(This,dwMilliSecsTimeout,State);
}
static FORCEINLINE HRESULT IMediaFilter_SetSyncSource(IMediaFilter* This,IReferenceClock *pClock) {
return This->lpVtbl->SetSyncSource(This,pClock);
}
static FORCEINLINE 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 FORCEINLINE HRESULT IBaseFilter_QueryInterface(IBaseFilter* This,REFIID riid,void **ppvObject) {
return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG IBaseFilter_AddRef(IBaseFilter* This) {
return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG IBaseFilter_Release(IBaseFilter* This) {
return This->lpVtbl->Release(This);
}
/*** IPersist methods ***/
static FORCEINLINE HRESULT IBaseFilter_GetClassID(IBaseFilter* This,CLSID *pClassID) {
return This->lpVtbl->GetClassID(This,pClassID);
}
/*** IMediaFilter methods ***/
static FORCEINLINE HRESULT IBaseFilter_Stop(IBaseFilter* This) {
return This->lpVtbl->Stop(This);
}
static FORCEINLINE HRESULT IBaseFilter_Pause(IBaseFilter* This) {
return This->lpVtbl->Pause(This);
}
static FORCEINLINE HRESULT IBaseFilter_Run(IBaseFilter* This,REFERENCE_TIME tStart) {
return This->lpVtbl->Run(This,tStart);
}
static FORCEINLINE HRESULT IBaseFilter_GetState(IBaseFilter* This,DWORD dwMilliSecsTimeout,FILTER_STATE *State) {
return This->lpVtbl->GetState(This,dwMilliSecsTimeout,State);
}
static FORCEINLINE HRESULT IBaseFilter_SetSyncSource(IBaseFilter* This,IReferenceClock *pClock) {
return This->lpVtbl->SetSyncSource(This,pClock);
}
static FORCEINLINE HRESULT IBaseFilter_GetSyncSource(IBaseFilter* This,IReferenceClock **pClock) {
return This->lpVtbl->GetSyncSource(This,pClock);
}
/*** IBaseFilter methods ***/
static FORCEINLINE HRESULT IBaseFilter_EnumPins(IBaseFilter* This,IEnumPins **ppEnum) {
return This->lpVtbl->EnumPins(This,ppEnum);
}
static FORCEINLINE HRESULT IBaseFilter_FindPin(IBaseFilter* This,LPCWSTR Id,IPin **ppPin) {
return This->lpVtbl->FindPin(This,Id,ppPin);
}
static FORCEINLINE HRESULT IBaseFilter_QueryFilterInfo(IBaseFilter* This,FILTER_INFO *pInfo) {
return This->lpVtbl->QueryFilterInfo(This,pInfo);
}
static FORCEINLINE HRESULT IBaseFilter_JoinFilterGraph(IBaseFilter* This,IFilterGraph *pGraph,LPCWSTR pName) {
return This->lpVtbl->JoinFilterGraph(This,pGraph,pName);
}
static FORCEINLINE 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 FORCEINLINE HRESULT IReferenceClock_QueryInterface(IReferenceClock* This,REFIID riid,void **ppvObject) {
return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG IReferenceClock_AddRef(IReferenceClock* This) {
return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG IReferenceClock_Release(IReferenceClock* This) {
return This->lpVtbl->Release(This);
}
/*** IReferenceClock methods ***/
static FORCEINLINE HRESULT IReferenceClock_GetTime(IReferenceClock* This,REFERENCE_TIME *pTime) {
return This->lpVtbl->GetTime(This,pTime);
}
static FORCEINLINE 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 FORCEINLINE 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 FORCEINLINE HRESULT IReferenceClock_Unadvise(IReferenceClock* This,DWORD_PTR dwAdviseCookie) {
return This->lpVtbl->Unadvise(This,dwAdviseCookie);
}
#endif
#endif
#endif
#endif /* __IReferenceClock_INTERFACE_DEFINED__ */
typedef IReferenceClock *PREFERENCECLOCK;
/*****************************************************************************
* IReferenceClockTimerControl interface
*/
#ifndef __IReferenceClockTimerControl_INTERFACE_DEFINED__
#define __IReferenceClockTimerControl_INTERFACE_DEFINED__
DEFINE_GUID(IID_IReferenceClockTimerControl, 0xebec459c, 0x2eca, 0x4d42, 0xa8,0xaf, 0x30,0xdf,0x55,0x76,0x14,0xb8);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("ebec459c-2eca-4d42-a8af-30df557614b8")
IReferenceClockTimerControl : public IUnknown
{
virtual HRESULT STDMETHODCALLTYPE SetDefaultTimerResolution(
REFERENCE_TIME timerResolution) = 0;
virtual HRESULT STDMETHODCALLTYPE GetDefaultTimerResolution(
REFERENCE_TIME *pTimerResolution) = 0;
};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IReferenceClockTimerControl, 0xebec459c, 0x2eca, 0x4d42, 0xa8,0xaf, 0x30,0xdf,0x55,0x76,0x14,0xb8)
#endif
#else
typedef struct IReferenceClockTimerControlVtbl {
BEGIN_INTERFACE
/*** IUnknown methods ***/
HRESULT (STDMETHODCALLTYPE *QueryInterface)(
IReferenceClockTimerControl *This,
REFIID riid,
void **ppvObject);
ULONG (STDMETHODCALLTYPE *AddRef)(
IReferenceClockTimerControl *This);
ULONG (STDMETHODCALLTYPE *Release)(
IReferenceClockTimerControl *This);
/*** IReferenceClockTimerControl methods ***/
HRESULT (STDMETHODCALLTYPE *SetDefaultTimerResolution)(
IReferenceClockTimerControl *This,
REFERENCE_TIME timerResolution);
HRESULT (STDMETHODCALLTYPE *GetDefaultTimerResolution)(
IReferenceClockTimerControl *This,
REFERENCE_TIME *pTimerResolution);
END_INTERFACE
} IReferenceClockTimerControlVtbl;
interface IReferenceClockTimerControl {
CONST_VTBL IReferenceClockTimerControlVtbl* lpVtbl;
};
#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IReferenceClockTimerControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IReferenceClockTimerControl_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IReferenceClockTimerControl_Release(This) (This)->lpVtbl->Release(This)
/*** IReferenceClockTimerControl methods ***/
#define IReferenceClockTimerControl_SetDefaultTimerResolution(This,timerResolution) (This)->lpVtbl->SetDefaultTimerResolution(This,timerResolution)
#define IReferenceClockTimerControl_GetDefaultTimerResolution(This,pTimerResolution) (This)->lpVtbl->GetDefaultTimerResolution(This,pTimerResolution)
#else
/*** IUnknown methods ***/
static FORCEINLINE HRESULT IReferenceClockTimerControl_QueryInterface(IReferenceClockTimerControl* This,REFIID riid,void **ppvObject) {
return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG IReferenceClockTimerControl_AddRef(IReferenceClockTimerControl* This) {
return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG IReferenceClockTimerControl_Release(IReferenceClockTimerControl* This) {
return This->lpVtbl->Release(This);
}
/*** IReferenceClockTimerControl methods ***/
static FORCEINLINE HRESULT IReferenceClockTimerControl_SetDefaultTimerResolution(IReferenceClockTimerControl* This,REFERENCE_TIME timerResolution) {
return This->lpVtbl->SetDefaultTimerResolution(This,timerResolution);
}
static FORCEINLINE HRESULT IReferenceClockTimerControl_GetDefaultTimerResolution(IReferenceClockTimerControl* This,REFERENCE_TIME *pTimerResolution) {
return This->lpVtbl->GetDefaultTimerResolution(This,pTimerResolution);
}
#endif
#endif
#endif
#endif /* __IReferenceClockTimerControl_INTERFACE_DEFINED__ */
/*****************************************************************************
* IReferenceClock2 interface
*/
#ifndef __IReferenceClock2_INTERFACE_DEFINED__
#define __IReferenceClock2_INTERFACE_DEFINED__
DEFINE_GUID(IID_IReferenceClock2, 0x36b73885, 0xc2c8, 0x11cf, 0x8b,0x46, 0x00,0x80,0x5f,0x6c,0xef,0x60);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("36b73885-c2c8-11cf-8b46-00805f6cef60")
IReferenceClock2 : public IReferenceClock
{
};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IReferenceClock2, 0x36b73885, 0xc2c8, 0x11cf, 0x8b,0x46, 0x00,0x80,0x5f,0x6c,0xef,0x60)
#endif
#else
typedef struct IReferenceClock2Vtbl {
BEGIN_INTERFACE
/*** IUnknown methods ***/
HRESULT (STDMETHODCALLTYPE *QueryInterface)(
IReferenceClock2 *This,
REFIID riid,
void **ppvObject);
ULONG (STDMETHODCALLTYPE *AddRef)(
IReferenceClock2 *This);
ULONG (STDMETHODCALLTYPE *Release)(
IReferenceClock2 *This);
/*** IReferenceClock methods ***/
HRESULT (STDMETHODCALLTYPE *GetTime)(
IReferenceClock2 *This,
REFERENCE_TIME *pTime);
HRESULT (STDMETHODCALLTYPE *AdviseTime)(
IReferenceClock2 *This,
REFERENCE_TIME baseTime,
REFERENCE_TIME streamTime,
HEVENT hEvent,
DWORD_PTR *pdwAdviseCookie);
HRESULT (STDMETHODCALLTYPE *AdvisePeriodic)(
IReferenceClock2 *This,
REFERENCE_TIME startTime,
REFERENCE_TIME periodTime,
HSEMAPHORE hSemaphore,
DWORD_PTR *pdwAdviseCookie);
HRESULT (STDMETHODCALLTYPE *Unadvise)(
IReferenceClock2 *This,
DWORD_PTR dwAdviseCookie);
END_INTERFACE
} IReferenceClock2Vtbl;
interface IReferenceClock2 {
CONST_VTBL IReferenceClock2Vtbl* lpVtbl;
};
#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IReferenceClock2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IReferenceClock2_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IReferenceClock2_Release(This) (This)->lpVtbl->Release(This)
/*** IReferenceClock methods ***/
#define IReferenceClock2_GetTime(This,pTime) (This)->lpVtbl->GetTime(This,pTime)
#define IReferenceClock2_AdviseTime(This,baseTime,streamTime,hEvent,pdwAdviseCookie) (This)->lpVtbl->AdviseTime(This,baseTime,streamTime,hEvent,pdwAdviseCookie)
#define IReferenceClock2_AdvisePeriodic(This,startTime,periodTime,hSemaphore,pdwAdviseCookie) (This)->lpVtbl->AdvisePeriodic(This,startTime,periodTime,hSemaphore,pdwAdviseCookie)
#define IReferenceClock2_Unadvise(This,dwAdviseCookie) (This)->lpVtbl->Unadvise(This,dwAdviseCookie)
#else
/*** IUnknown methods ***/
static FORCEINLINE HRESULT IReferenceClock2_QueryInterface(IReferenceClock2* This,REFIID riid,void **ppvObject) {
return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG IReferenceClock2_AddRef(IReferenceClock2* This) {
return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG IReferenceClock2_Release(IReferenceClock2* This) {
return This->lpVtbl->Release(This);
}
/*** IReferenceClock methods ***/
static FORCEINLINE HRESULT IReferenceClock2_GetTime(IReferenceClock2* This,REFERENCE_TIME *pTime) {
return This->lpVtbl->GetTime(This,pTime);
}
static FORCEINLINE HRESULT IReferenceClock2_AdviseTime(IReferenceClock2* This,REFERENCE_TIME baseTime,REFERENCE_TIME streamTime,HEVENT hEvent,DWORD_PTR *pdwAdviseCookie) {
return This->lpVtbl->AdviseTime(This,baseTime,streamTime,hEvent,pdwAdviseCookie);
}
static FORCEINLINE HRESULT IReferenceClock2_AdvisePeriodic(IReferenceClock2* This,REFERENCE_TIME startTime,REFERENCE_TIME periodTime,HSEMAPHORE hSemaphore,DWORD_PTR *pdwAdviseCookie) {
return This->lpVtbl->AdvisePeriodic(This,startTime,periodTime,hSemaphore,pdwAdviseCookie);
}
static FORCEINLINE HRESULT IReferenceClock2_Unadvise(IReferenceClock2* This,DWORD_PTR dwAdviseCookie) {
return This->lpVtbl->Unadvise(This,dwAdviseCookie);
}
#endif
#endif
#endif
#endif /* __IReferenceClock2_INTERFACE_DEFINED__ */
typedef IReferenceClock2 *PREFERENCECLOCK2;
/*****************************************************************************
* 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(
WINBOOL bIsSyncPoint) = 0;
virtual HRESULT STDMETHODCALLTYPE IsPreroll(
) = 0;
virtual HRESULT STDMETHODCALLTYPE SetPreroll(
WINBOOL bIsPreroll) = 0;
virtual LONG STDMETHODCALLTYPE GetActualDataLength(
) = 0;
virtual HRESULT STDMETHODCALLTYPE SetActualDataLength(
LONG a) = 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(
WINBOOL 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,
WINBOOL bIsSyncPoint);
HRESULT (STDMETHODCALLTYPE *IsPreroll)(
IMediaSample *This);
HRESULT (STDMETHODCALLTYPE *SetPreroll)(
IMediaSample *This,
WINBOOL bIsPreroll);
LONG (STDMETHODCALLTYPE *GetActualDataLength)(
IMediaSample *This);
HRESULT (STDMETHODCALLTYPE *SetActualDataLength)(
IMediaSample *This,
LONG a);
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,
WINBOOL 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,a) (This)->lpVtbl->SetActualDataLength(This,a)
#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 FORCEINLINE HRESULT IMediaSample_QueryInterface(IMediaSample* This,REFIID riid,void **ppvObject) {
return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG IMediaSample_AddRef(IMediaSample* This) {
return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG IMediaSample_Release(IMediaSample* This) {
return This->lpVtbl->Release(This);
}
/*** IMediaSample methods ***/
static FORCEINLINE HRESULT IMediaSample_GetPointer(IMediaSample* This,BYTE **ppBuffer) {
return This->lpVtbl->GetPointer(This,ppBuffer);
}
static FORCEINLINE LONG IMediaSample_GetSize(IMediaSample* This) {
return This->lpVtbl->GetSize(This);
}
static FORCEINLINE HRESULT IMediaSample_GetTime(IMediaSample* This,REFERENCE_TIME *pTimeStart,REFERENCE_TIME *pTimeEnd) {
return This->lpVtbl->GetTime(This,pTimeStart,pTimeEnd);
}
static FORCEINLINE HRESULT IMediaSample_SetTime(IMediaSample* This,REFERENCE_TIME *pTimeStart,REFERENCE_TIME *pTimeEnd) {
return This->lpVtbl->SetTime(This,pTimeStart,pTimeEnd);
}
static FORCEINLINE HRESULT IMediaSample_IsSyncPoint(IMediaSample* This) {
return This->lpVtbl->IsSyncPoint(This);
}
static FORCEINLINE HRESULT IMediaSample_SetSyncPoint(IMediaSample* This,WINBOOL bIsSyncPoint) {
return This->lpVtbl->SetSyncPoint(This,bIsSyncPoint);
}
static FORCEINLINE HRESULT IMediaSample_IsPreroll(IMediaSample* This) {
return This->lpVtbl->IsPreroll(This);
}
static FORCEINLINE HRESULT IMediaSample_SetPreroll(IMediaSample* This,WINBOOL bIsPreroll) {
return This->lpVtbl->SetPreroll(This,bIsPreroll);
}
static FORCEINLINE LONG IMediaSample_GetActualDataLength(IMediaSample* This) {
return This->lpVtbl->GetActualDataLength(This);
}
static FORCEINLINE HRESULT IMediaSample_SetActualDataLength(IMediaSample* This,LONG a) {
return This->lpVtbl->SetActualDataLength(This,a);
}
static FORCEINLINE HRESULT IMediaSample_GetMediaType(IMediaSample* This,AM_MEDIA_TYPE **ppMediaType) {
return This->lpVtbl->GetMediaType(This,ppMediaType);
}
static FORCEINLINE HRESULT IMediaSample_SetMediaType(IMediaSample* This,AM_MEDIA_TYPE *pMediaType) {
return This->lpVtbl->SetMediaType(This,pMediaType);
}
static FORCEINLINE HRESULT IMediaSample_IsDiscontinuity(IMediaSample* This) {
return This->lpVtbl->IsDiscontinuity(This);
}
static FORCEINLINE HRESULT IMediaSample_SetDiscontinuity(IMediaSample* This,WINBOOL bDiscontinuity) {
return This->lpVtbl->SetDiscontinuity(This,bDiscontinuity);
}
static FORCEINLINE HRESULT IMediaSample_GetMediaTime(IMediaSample* This,LONGLONG *pTimeStart,LONGLONG *pTimeEnd) {
return This->lpVtbl->GetMediaTime(This,pTimeStart,pTimeEnd);
}
static FORCEINLINE 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,
WINBOOL bIsSyncPoint);
HRESULT (STDMETHODCALLTYPE *IsPreroll)(
IMediaSample2 *This);
HRESULT (STDMETHODCALLTYPE *SetPreroll)(
IMediaSample2 *This,
WINBOOL bIsPreroll);
LONG (STDMETHODCALLTYPE *GetActualDataLength)(
IMediaSample2 *This);
HRESULT (STDMETHODCALLTYPE *SetActualDataLength)(
IMediaSample2 *This,
LONG a);
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,
WINBOOL 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,a) (This)->lpVtbl->SetActualDataLength(This,a)
#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 FORCEINLINE HRESULT IMediaSample2_QueryInterface(IMediaSample2* This,REFIID riid,void **ppvObject) {
return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG IMediaSample2_AddRef(IMediaSample2* This) {
return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG IMediaSample2_Release(IMediaSample2* This) {
return This->lpVtbl->Release(This);
}
/*** IMediaSample methods ***/
static FORCEINLINE HRESULT IMediaSample2_GetPointer(IMediaSample2* This,BYTE **ppBuffer) {
return This->lpVtbl->GetPointer(This,ppBuffer);
}
static FORCEINLINE LONG IMediaSample2_GetSize(IMediaSample2* This) {
return This->lpVtbl->GetSize(This);
}
static FORCEINLINE HRESULT IMediaSample2_GetTime(IMediaSample2* This,REFERENCE_TIME *pTimeStart,REFERENCE_TIME *pTimeEnd) {
return This->lpVtbl->GetTime(This,pTimeStart,pTimeEnd);
}
static FORCEINLINE HRESULT IMediaSample2_SetTime(IMediaSample2* This,REFERENCE_TIME *pTimeStart,REFERENCE_TIME *pTimeEnd) {
return This->lpVtbl->SetTime(This,pTimeStart,pTimeEnd);
}
static FORCEINLINE HRESULT IMediaSample2_IsSyncPoint(IMediaSample2* This) {
return This->lpVtbl->IsSyncPoint(This);
}
static FORCEINLINE HRESULT IMediaSample2_SetSyncPoint(IMediaSample2* This,WINBOOL bIsSyncPoint) {
return This->lpVtbl->SetSyncPoint(This,bIsSyncPoint);
}
static FORCEINLINE HRESULT IMediaSample2_IsPreroll(IMediaSample2* This) {
return This->lpVtbl->IsPreroll(This);
}
static FORCEINLINE HRESULT IMediaSample2_SetPreroll(IMediaSample2* This,WINBOOL bIsPreroll) {
return This->lpVtbl->SetPreroll(This,bIsPreroll);
}
static FORCEINLINE LONG IMediaSample2_GetActualDataLength(IMediaSample2* This) {
return This->lpVtbl->GetActualDataLength(This);
}
static FORCEINLINE HRESULT IMediaSample2_SetActualDataLength(IMediaSample2* This,LONG a) {
return This->lpVtbl->SetActualDataLength(This,a);
}
static FORCEINLINE HRESULT IMediaSample2_GetMediaType(IMediaSample2* This,AM_MEDIA_TYPE **ppMediaType) {
return This->lpVtbl->GetMediaType(This,ppMediaType);
}
static FORCEINLINE HRESULT IMediaSample2_SetMediaType(IMediaSample2* This,AM_MEDIA_TYPE *pMediaType) {
return This->lpVtbl->SetMediaType(This,pMediaType);
}
static FORCEINLINE HRESULT IMediaSample2_IsDiscontinuity(IMediaSample2* This) {
return This->lpVtbl->IsDiscontinuity(This);
}
static FORCEINLINE HRESULT IMediaSample2_SetDiscontinuity(IMediaSample2* This,WINBOOL bDiscontinuity) {
return This->lpVtbl->SetDiscontinuity(This,bDiscontinuity);
}
static FORCEINLINE HRESULT IMediaSample2_GetMediaTime(IMediaSample2* This,LONGLONG *pTimeStart,LONGLONG *pTimeEnd) {
return This->lpVtbl->GetMediaTime(This,pTimeStart,pTimeEnd);
}
static FORCEINLINE HRESULT IMediaSample2_SetMediaTime(IMediaSample2* This,LONGLONG *pTimeStart,LONGLONG *pTimeEnd) {
return This->lpVtbl->SetMediaTime(This,pTimeStart,pTimeEnd);
}
/*** IMediaSample2 methods ***/
static FORCEINLINE HRESULT IMediaSample2_GetProperties(IMediaSample2* This,DWORD cbProperties,BYTE *pbProperties) {
return This->lpVtbl->GetProperties(This,cbProperties,pbProperties);
}
static FORCEINLINE 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;
/*****************************************************************************
* IMediaSample2Config interface
*/
#ifndef __IMediaSample2Config_INTERFACE_DEFINED__
#define __IMediaSample2Config_INTERFACE_DEFINED__
DEFINE_GUID(IID_IMediaSample2Config, 0x68961e68, 0x832b, 0x41ea, 0xbc,0x91, 0x63,0x59,0x3f,0x3e,0x70,0xe3);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("68961e68-832b-41ea-bc91-63593f3e70e3")
IMediaSample2Config : public IUnknown
{
virtual HRESULT STDMETHODCALLTYPE GetSurface(
IUnknown **ppDirect3DSurface9) = 0;
};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IMediaSample2Config, 0x68961e68, 0x832b, 0x41ea, 0xbc,0x91, 0x63,0x59,0x3f,0x3e,0x70,0xe3)
#endif
#else
typedef struct IMediaSample2ConfigVtbl {
BEGIN_INTERFACE
/*** IUnknown methods ***/
HRESULT (STDMETHODCALLTYPE *QueryInterface)(
IMediaSample2Config *This,
REFIID riid,
void **ppvObject);
ULONG (STDMETHODCALLTYPE *AddRef)(
IMediaSample2Config *This);
ULONG (STDMETHODCALLTYPE *Release)(
IMediaSample2Config *This);
/*** IMediaSample2Config methods ***/
HRESULT (STDMETHODCALLTYPE *GetSurface)(
IMediaSample2Config *This,
IUnknown **ppDirect3DSurface9);
END_INTERFACE
} IMediaSample2ConfigVtbl;
interface IMediaSample2Config {
CONST_VTBL IMediaSample2ConfigVtbl* lpVtbl;
};
#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IMediaSample2Config_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IMediaSample2Config_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IMediaSample2Config_Release(This) (This)->lpVtbl->Release(This)
/*** IMediaSample2Config methods ***/
#define IMediaSample2Config_GetSurface(This,ppDirect3DSurface9) (This)->lpVtbl->GetSurface(This,ppDirect3DSurface9)
#else
/*** IUnknown methods ***/
static FORCEINLINE HRESULT IMediaSample2Config_QueryInterface(IMediaSample2Config* This,REFIID riid,void **ppvObject) {
return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG IMediaSample2Config_AddRef(IMediaSample2Config* This) {
return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG IMediaSample2Config_Release(IMediaSample2Config* This) {
return This->lpVtbl->Release(This);
}
/*** IMediaSample2Config methods ***/
static FORCEINLINE HRESULT IMediaSample2Config_GetSurface(IMediaSample2Config* This,IUnknown **ppDirect3DSurface9) {
return This->lpVtbl->GetSurface(This,ppDirect3DSurface9);
}
#endif
#endif
#endif
#endif /* __IMediaSample2Config_INTERFACE_DEFINED__ */
#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 FORCEINLINE HRESULT IMemAllocator_QueryInterface(IMemAllocator* This,REFIID riid,void **ppvObject) {
return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG IMemAllocator_AddRef(IMemAllocator* This) {
return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG IMemAllocator_Release(IMemAllocator* This) {
return This->lpVtbl->Release(This);
}
/*** IMemAllocator methods ***/
static FORCEINLINE HRESULT IMemAllocator_SetProperties(IMemAllocator* This,ALLOCATOR_PROPERTIES *pRequest,ALLOCATOR_PROPERTIES *pActual) {
return This->lpVtbl->SetProperties(This,pRequest,pActual);
}
static FORCEINLINE HRESULT IMemAllocator_GetProperties(IMemAllocator* This,ALLOCATOR_PROPERTIES *pProps) {
return This->lpVtbl->GetProperties(This,pProps);
}
static FORCEINLINE HRESULT IMemAllocator_Commit(IMemAllocator* This) {
return This->lpVtbl->Commit(This);
}
static FORCEINLINE HRESULT IMemAllocator_Decommit(IMemAllocator* This) {
return This->lpVtbl->Decommit(This);
}
static FORCEINLINE 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 FORCEINLINE 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);